Centos7 中设置tomcat为daemon服务,并开机启动

1 序言

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

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

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

2 安装jsvc

Tomcat 安装包的 bin 子目录下就包含了 Jsvc 工具包的源码,整个建立过程很方便,如下。

假设java8的安装目录是 /usr/softwares/jdk1.8.0_181

tomcat下载地址,下载自己需要的版本:https://tomcat.apache.org/download-80.cgi

#解压安装tomcat8.5
cd /usr/local/service/tomcat
tar -xzvf apache-tomcat-8.5.46.tar.gz
 
#解压安装tomcat中的jsvc
cd apache-tomcat-8.5.46/bin
tar -xzvf commons-daemon-native.tar.gz
cd commons-daemon-1.1.0-native-src/unix/
./configure --with-java=/usr/java/jdk1.8.0_65
make
cp jsvc /usr/local/service/tomcat/apache-tomcat-8.5.46/bin

3 添加开机自启服务

3.2 centos系统为准

默认当前目录在 /usr/softwares/apache-tomcat-8.5.34/bin

3.2.1 对 daemon.sh 脚本做修改:

#说明:在首行 #!/bin/sh 的下一行添加服务配置信息
# chkconfig: 2345 20 80
# description: Startup script for the Tomcat 8.5 Server
 
#说明:找到 test ".$TOMCAT_USER" = . && TOMCAT_USER= 这一行,在前面加上jdk和tomcat环境配置
JAVA_HOME=/usr/java/jdk1.8.0_65
CATALINA_HOME=/usr/local/service/tomcat/apache-tomcat-8.5.46
test ".$TOMCAT_USER" = . && TOMCAT_USER=root

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

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

3.2.2 添加服务

centos系统支持 chkconfig 命令添加/删除服务

cp daemon.sh /etc/init.d/tomcat
 
#添加tomcat服务
chkconfig --add tomcat
chkconfig --list tomcat #查看服务是否添加成功

关于chkconfig命令比较简单,网上也随便可以找到详情,这里就不多说了。

3.2.3 开启服务

#开启tomcat服务
service tomcat start
#关闭tomcat服务
service tomcat stop
#重启tomcat服务
service tomcat restart
#查看tomcat服务的状态
service tomcat status

最后,重启机器,再查看下该进程就可以知道是否开机自启动了。

reboot
 
ps -aux|grep tomcat

 

 

第二种方式(未验证)

方式二:systemctl服务方式(新方式)
以前都用service命令管理软件,而centos7.x引入新的方式来管理系统进程,使用systemctl替换了service命令,当然service方式依旧可以继续使用。systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。systemctl的使用可参考CentOS7中systemctl的使用

7.创建开机启动服务文件 
创建一个名为tomcat.service的系统服务脚本
 

#创建一个名为tomcat.service的系统服务脚本
vim /usr/lib/systemd/system/tomcat.service

写入以下内容

[Unit]
Description=Apache Tomcat
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
Environment=JAVA_HOME=/usr/local/jdk
Environment=CATALINA_HOME=/usr/local/tomcat

ExecStart=/usr/local/tomcat/bin/daemon.sh start
ExecStop=/usr/local/tomcat/bin/daemon.sh stop
User=tomcat
Group=tomcat
PrivateTmp=true
[Install]
WantedBy=multi-user.target

配置好后,要刷新一下

#重新加载一下配置。每次改动后也要重新加载
systemctl daemon-reload

8.设置开机启动,并启动服务

#设置允许开机自启动
systemctl enable tomcat 

#启动服务
systemctl start tomcat
#查看状态
systemctl status tomcat
#查看服务是否激活
systemctl is-active tomcat

##其它命令
# 禁止开机启动
systemctl disable tomcat
# 停止服务
systemctl stop tomcat
# 重启服务
systemctl restart tomcat
# 查看所有已启动的服务
systemctl list -units --type=service

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值