Linux系统的tomcat以daemon模式启动并配置成服务202004

Jsvc 是专为 Java 应用程序开发的一个工具包,其目标是把 Java 应用程序的普通运行转换为可以配置某个普通用户以 Unix 守护进程的方式运行。这样的话,可以很方便地启动 / 停止应用程序,同时也可以支持开机自启。开机自启tomcat是比较重要的,可以保证由于意外而使机器需要重启时不需要手动重启tomcat就可以自动恢复服务。

简而言之,在生产环境中我们需要将tomcat配置成以daemon守护进程来运行,主要有以下几个原因:

  • 以daemon方式运行tomcat可使tomcat不受终端影响,不会因为退出终端而停止运行。
  • 可以让tomcat以普通用户身份运行。
  • 可以让tomcat在系统启动时自动运行,且实现非root用户自运行。

1、在/usr/local/apache-tomcat-7.0.68/bin中有commons-daemon-native.tar.gz  压缩包(每个版本都有对应的包在tomat包里)

2、解压commons-daemon-native.tar.gz 

tar -zxvf commons-daemon-native.tar.gz

3、解压完成,出现commons-daemon-1.0.15-native-src文件夹(目录)

4、  执行configure 文件 

cd commons-daemon-1.0.15-native-src/unix 
./configure 

5、  编译 (注意不是安装,这里的是为了编译出jsvc文件)

make

6、 编译完成后出现jsvc文件夹,复制jsvc到/usr/local/apache-tomcat-7.0.68/bin目录下面 

cp jsvc ../../ 

7、避免内存溢出,设置环境变量(添加setenv.sh,内容如下)该文件放在bin下边,跟daemon.sh文件同级

#add tomcat pid

CATALINA_PID="$CATALINA_BASE/tomcat.pid"

#add java opts

JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx2048M -XX:MaxNewSize=256m"

8、/usr/local/apache-tomcat-7.0.68/bin/daemon.sh start启动tomcat

9、配置tomcat为系统服务,并实现自动启动,首先修改/usr/local/apache-tomcat-7.0.68/bin目录下daemon.sh脚本,在首行 #!/bin/sh 的下一行添加服务配置信息

# chkconfig: 2345 20 80
# description: Startup script for the Tomcat 7.0.65 Server

10、找到 test ".$TOMCAT_USER" = . && TOMCAT_USER= 这一行,在前面加上jdk和tomcat环境配置

JAVA_HOME=/usr/softwares/jdk1.6.0_45

CATALINA_HOME=/usr/softwares/apache-tomcat-7.0.68

test ".$TOMCAT_USER" = . && TOMCAT_USER=wyan

参数说明
chkconfig 的2345表示默认服务级别,启动顺序为20,关闭顺序为80

TOMCAT_USER=wyan,以wyan用户来执行tomcat程序

11、把tomcat添加成系统服务进行启动,在上面的配置正确后,要将daemon.sh添加成为服务就非常简单了,只需要创建一个软链到/etc/rc.d/init.d/目录中即可(此步骤需要切换root)

ln -s  /usr/softwares/apache-tomcat-7.0.68/bin/daemon.sh /etc/rc.d/init.d/tomcat7

注意:切换到root用户,然后修改连接归属用户

chown -R wyan:wyan /etc/rc.d/init.d/tomcat7

然后可以切换到wyan用户进行启动停止测试

1.启动:
service tomcat7 start
2.停止:
service tomcat7 stop

12、添加tomcat7服务自动启动,并查看是否添加成功


chkconfig --add tomcat7  #添加tomcat服务
chkconfig --list tomcat7 #查看服务是否添加成功

然后重启linux发现tomcat会自动启动成功,注意守护进程是root的,工作进程是wyan的,这一点要知晓

猜你喜欢

转载自www.cnblogs.com/mxci/p/12804009.html