在linux系统上进行项目开发,经常需要把自己的应用变成linux的服务,当服务器启动的时候就自行启动自己的应用。使用JSVC就能够实现上面的功能。jsvc.tar包会在Tomcat/bin下找到
1.安装jsvc
在tomcat的bin目录下有一个jsvc.tar.gz的文件,进入tomcat的bin目录下
#tar xvfz jsvc.tar.gz
#cd jsvc-src
#sh support/buildconf.sh
#chmod 755 configure
#./configure --with-java=/usr/local/java (改成你的JDK的位置)
#make
2.编写服务启动类
package com.sohu.jsvc.test;
public class TestJsvc {
public static void main(String args[]) {
System.out.println("execute main method!");
}
public void init() throws Exception {
System.out.println("execute init method!");
}
public void init(String[] args) throws Exception{
System.out.println("execute init(args) method");
}
public void start() throws Exception {
System.out.println("execute start method!");
}
public void stop() throws Exception {
System.out.println("execute stop method!");
}
public void destroy() throws Exception{
System.out.println("execute destroy method!");
}
}
main方法可以去掉,但是init(String[] args),start(),stop(),destroy()方法不能少,服务在启动时会先调用init(String[] args)方法
然后调用start()方法,在服务停止是会首先调用stop()方法,然后调用destroy() 方法.
3.把这个类打包成testjsvc.jar 放到/test目录下
4.编写启动服务的脚本 myjsvc,其中红色字体的部分,要根据具体的情况做出修改
#!/bin/sh
# myjsvc This shell script takes care of starting and stopping
#
# chkconfig: - 60 50
# description: test a daemon.
# processname: myjsvc
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
prog="MYJSVC"
# jdk的安装目录
JAVA_HOME=/usr/java/jdk1.5.0_15
#应用程序的目录
MYJSVC_HOME=/test
#jsvc所在的目录
DAEMON_HOME=/usr/local/tomcat5/bin/jsvc-src
#用户
MYJSVC_USER=root
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/tlstat.pid
#程序运行是所需的jar包,commons-daemon.jar是不能少的
CLASSPATH=\
/test/testjsvc.jar:\
/usr/local/tomcat5/bin/commons-daemon.jar:\
case "$1" in
start)
#
# Start Serivce
#
$DAEMON_HOME/jsvc \
-user $MYJSVC_USER \
-home $JAVA_HOME \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $MYJSVC_HOME/log/myjsvc.out \
-errfile '&1' \
-cp $CLASSPATH \
com.sohu.jsvc.test.TestJsvc
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
#
# Stop Serivce
#
$DAEMON_HOME/jsvc \
-stop \
-pidfile $PID_FILE \
com.sohu.jsvc.test.TestJsvc
exit $?
;;
*)
echo "Usage myjsvc start/stop"
exit 1;;
esac
5. 把myjsvc文件拷贝到/etc/init.d/目录下
6. #chmod -c 777 /etc/init.d/myjsvc
7. 添加服务
#chkconfig --add myjsvc
#chkconfig --level 345 myjsvc on 设置服务的启动级别
8. 完成,启动服务
#service myjsvc start
你可以从/test/log/myjsvc.out文件里看到如下信息:
execute init(args) method
execute start method
#service myjsvc stop
你会发现/test/log/myjsvc.out文件里会增加如下信息
execute stop method
execute destroy method
并且在系统重启时会自动启动myjsvc服务
好了,一个简单的 Liunx服务就写好了,你可以在TestJsvc的init(),start(),stop(),destroy()方法里添加你的业务,做你想做的事。
分享到:
相关推荐
综上所述,用jsvc发布Linux服务涉及到Java应用程序的部署、系统服务的配置、脚本编写、权限管理等多个方面,需要对Linux系统、Java环境以及系统服务管理有深入的理解。通过正确使用jsvc,可以确保Java应用程序在...
6. 将编译好的`jsvc`复制到Tomcat的启动脚本目录,如`/usr/local/tomcat/bin/`。 7. 修改`/etc/init.d/`目录下的启动脚本,比如创建一个名为`tomcat`的文件,将`Tomcat5.sh`的内容复制过去。 8. 为脚本添加执行权限...
而`jsvc.tar.gz`是一个关键的组件,它允许我们在Linux系统下以服务的方式启动和管理Tomcat。下面将详细阐述`jsvc`及其在Linux环境下的使用。 `jsvc`是Commons Daemon项目的一部分,由Apache软件基金会提供。这个...
jsvc启动tomcat原理详细说明,更安全的启动tomcat的方式。
jsvc是Apache Commons Daemon项目的一部分,主要用于在Unix类系统(包括Linux)上以系统服务的方式启动、停止或管理Java应用程序,比如Apache Tomcat。这个工具通常与Java Development Kit (JDK)一起使用,因为它是...
一旦jsvc准备就绪,你可以创建一个启动脚本来管理Tomcat服务。这个脚本通常放在`/etc/init.d/`目录下,例如`/etc/init.d/tomcat`。脚本应该包括启动、停止和状态检查的命令。例如,启动命令可能是`/usr/local/apache...
在Linux操作系统中,确保Tomcat服务器在系统启动时自动运行是非常重要的,这有助于保持应用程序的持续可用性。本文将介绍两种方法来实现这一目标,一种简单,另一种则更为专业。 首先,简单的方法是通过编辑`/etc/...
tomcat10自启动脚本\tomcat服务脚本\tomcat启动脚本 tomcat10 jsvc自启动脚本\tomcat jsvc服务脚本\tomcat jsvc启动脚本
我们通过 jsvc 可以很简单的 封装我们自己的 启动脚本,还可以 随意制定 tomcat 运行用户和组,还可以指定 jvm 的运行参数例如内存控制,语言,字符编码。我们还可以指定 tomcat 启动是的 pidfile 总之我们可以更...
在Linux环境中,为了确保应用程序如Tomcat能够随系统自动启动并作为守护进程运行,需要进行一系列的配置步骤。本文将详细介绍如何将Tomcat添加到Linux的守护进程,并处理"Invalid user name 'tomcat' specified"的...
完成编译安装后,我们将生成的`jsvc`文件复制到Tomcat的`bin`目录,以便在启动脚本中使用。接着,我们需要修改Tomcat的启动脚本`daemon.sh`,设置`TOMCAT_USER`为我们的非root用户(这里是`tomcat`),并取消`JAVA_...
为了更好的网络共享 本人发布的资源一律免费 如有...tomcat自动启动脚本的设置教程(Linux系统jsvc脚本非root) 几种Linux嵌入式开发环境的简单介绍 解决Oracle 9i和Tomcat端口冲突 在Linux系统平台上安装Tomcat的总结
在Linux中,通常使用init脚本或者Systemd服务来管理应用程序的启动和停止。然而,这些方法可能不适用于所有类型的Java应用,因为它们可能有特定的依赖或配置需求。此时,Wrapper工具能提供一个标准化的接口,简化...
最后,在`/etc/init.d`目录下创建一个Tomcat的启动脚本,比如`tomcat6`,然后设置权限和启动链接: ```bash [root@localhost ~]# cd /etc/init.d [root@localhost ~]# vi tomcat6 ``` 在这个脚本中,你需要写入...
1. **Linux 系统环境准备**:确保已经安装好 Red Hat Linux 9.0,并且系统正常启动。 2. **软件下载**:下载好所需软件包,包括 JDK 1.6、Tomcat 6、Oracle 9i 安装包等。 3. **磁盘空间检查**:确保有足够的磁盘...
`jsvc`是Apache Commons Daemon项目的核心工具,它是一个C语言编写的可执行程序,用于启动、停止和管理Java应用程序。`jsvc`支持守护进程模式(daemon mode),这意味着Java应用程序可以在后台无控制台地运行,如同...
离线安装包,亲测可用
线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导出每个线程的占用CPU情况,结合jstack日志,排查到具体的线程类名。 一、首先获得jvm的进程...
如果需要更复杂的启动逻辑,可以创建一个批处理脚本,包括设置环境变量、启动`jsvc.exe`等步骤,然后将此脚本作为服务的启动程序。 6. 注意事项 - 确保`jsvc.exe`和相关DLL文件在系统路径中可找到,或者与Java...