CentOS7下利用systemd机制实现tomcat开机自启动

1,068次阅读

共计 1256 个字符,预计需要花费 4 分钟才能阅读完成。

作为CentOS7来说,通过init.d建立启动脚本的机制已经不被推荐,推荐的方式是利用systemd机制实现开机启动,下面就该方式进行介绍。

 

环境准备

[v_notice]

操作系统:CentOS 7(64位)

已安装JDK,并配置好环境变量

已安装tomcat,可手动启动,安装路径:/usr/local/tomcat/(可自定义)

[/v_notice]

 

创建Tomcat启动参数setenv.sh

catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此需要在/usr/local /tomcat/bin路径下创建setenv.sh文件。
执行脚本:

[root@crontab ~]# vim /usr/local/tomcat/bin/setenv.sh
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
#设置Tomcat的PID文件
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#添加JVM选项
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

编写tomcat.service

在/usr/lib/systemd/system路径下添加tomcat.service文件。
注意:文件中目录路径必须是绝对路径
执行脚本:

[root@crontab ~]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat8
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[v_notice]

[unit]配置了服务的描述,规定了在network启动之后执行

[service]配置服务的pid,服务的启动,停止,重启

[install]配置了使用用户

[/v_notice]

测试tomcat服务

启动

CentOS7下利用systemd机制实现tomcat开机自启动

端口

CentOS7下利用systemd机制实现tomcat开机自启动

停止

CentOS7下利用systemd机制实现tomcat开机自启动

 

因为配置pid,在启动的时候会再tomcat根目录生成tomcat.pid文件,停止之后删除。

同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。

多个tomcat可以配置在多个目录下,互不影响。

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2018-06-19发表,共计1256字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索