17102101_CentOS7下利用systemd机制实现tomcat开机自启动
来源:互联网 发布:linux sh 函数 编辑:程序博客网 时间:2024/06/07 03:13
在之前的博文中已经对CentOS7下利用init.d目录下创建开机启动服务脚本,实现tomcat开机启动的介绍。但作为CentOS7来说,通过init.d建立启动脚本的机制已经不被推荐,推荐的方式是利用systemd机制实现开机启动,下面就该方式进行介绍。
1. 环境准备
1.1 系统
操作系统:CentOS 7(64位)
1.2 工具/软件
已安装JDK,并配置好环境变量
已安装tomcat,可手动启动,安装路径:/usr/local/tomcat/
2. 方法/步骤
2.1 JDK环境配置
CentOS7默认安装了OpenJDK,用于支持Tomcat启动是没有问题的。如果项目需要使用Sun的JDK特性的话,就需要重新配置Sun的JDK环境。这里可以参照本人之前的博文:《17101501_CentOS7下卸载openJDK安装Sun公司的JDK》。
2.2 创建Tomcat启动参数setenv.sh文件
catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此需要在/usr/local /tomcat/bin路径下创建setenv.sh文件。
执行脚本:
[zm@zm-centos7 ~]$ su # 切换至root用户密码:[root@zm-centos7 zm]# vim /usr/local/tomcat/bin/setenv.sh # 创建setenv.sh脚本[root@zm-centos7 zm]# cat /usr/local/tomcat/bin/setenv.sh # 查看setenv.sh脚本内容export CATALINA_HOME=/usr/local/tomcatexport 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"
2.3 编写tomcat.service文件
在/usr/lib/systemd/system路径下添加tomcat.service文件。
注意:文件中目录路径必须是绝对路径
执行脚本:
[root@zm-centos7 zm]# vim /usr/lib/systemd/system/tomcat.service #创建tomcat.service服务脚本[root@zm-centos7 zm]# cat /usr/lib/systemd/system/tomcat.service #查看tomcat.service服务脚本[Unit]Description=Tomcat8After=syslog.target network.target remote-fs.target nss-lookup.target[Service]Type=forkingPIDFile=/usr/local/tomcat/tomcat.pidExecStart=/usr/local/tomcat/bin/startup.shExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target
[unit]配置了服务的描述,规定了在network启动之后执行,
[service]配置服务的pid,服务的启动,停止,重启
[install]配置了使用用户
2.4 测试Tomcat.service服务
执行脚本:
[root@zm-centos7 zm]# systemctl enable tomcat # 设置开机自启动Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service. # 自动创建软连接[root@zm-centos7 zm]# systemctl start tomcat # 启动tomcat服务[root@zm-centos7 zm]# systemctl status tomcat # 查看tomcat服务状态● tomcat.service - Tomcat8 Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor prese t: disabled) Active: active (running) since 一 2017-10-23 15:25:27 CST; 7s ago Process: 6666 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status= 0/SUCCESS) Main PID: 6692 (java) CGroup: /system.slice/tomcat.service └─6692 /usr/bin/java -Djava.util.logging.config.file=/usr/local/to...10月 23 15:25:27 zm-centos7 systemd[1]: Starting Tomcat8...10月 23 15:25:27 zm-centos7 startup.sh[6666]: Tomcat started.10月 23 15:25:27 zm-centos7 systemd[1]: Started Tomcat8.[root@zm-centos7 zm]# systemctl stop tomcat # 停止tomcat服务[root@zm-centos7 zm]# systemctl status tomcat # 查看tomcat服务状态● tomcat.service - Tomcat8 Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor prese t: disabled) Active: failed (Result: exit-code) since 一 2017-10-23 15:25:48 CST; 2s ago Process: 6799 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/SUCCE SS) Process: 6666 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status= 0/SUCCESS) Main PID: 6692 (code=exited, status=143)10月 23 15:25:27 zm-centos7 systemd[1]: Starting Tomcat8...10月 23 15:25:27 zm-centos7 startup.sh[6666]: Tomcat started.10月 23 15:25:27 zm-centos7 systemd[1]: Started Tomcat8.10月 23 15:25:48 zm-centos7 systemd[1]: Stopping Tomcat8...10月 23 15:25:48 zm-centos7 systemd[1]: tomcat.service: main process exited...a10月 23 15:25:48 zm-centos7 systemd[1]: Stopped Tomcat8.10月 23 15:25:48 zm-centos7 systemd[1]: Unit tomcat.service entered failed ....10月 23 15:25:48 zm-centos7 systemd[1]: tomcat.service failed.Hint: Some lines were ellipsized, use -l to show in full.
因为配置pid,在启动的时候会再tomcat根目录生成tomcat.pid文件,停止之后删除。
同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。
多个tomcat可以配置在多个目录下,互不影响。
- 17102101_CentOS7下利用systemd机制实现tomcat开机自启动
- 17101701_CentOS7下利用init.d启动脚本实现tomcat开机自启动
- 17092601_CentOS7(64)下Oracle11g设置开机自启动
- centos下实现程序开机自启动(tomcat为例)
- tomcat在CentOS下实现开机自启动
- 17101001_CentOS7下Oracle11g设置开机自启(二)
- linux 下tomcat开机自启动
- linux 下tomcat开机自启动
- Linux下设置开机自启动Tomcat
- linux 下tomcat开机自启动
- linux下配置tomcat开机自启动
- linux下tomcat开机自启动
- linux下tomcat开机自启动
- linux 下tomcat开机自启动
- centeros下tomcat开机自启动脚本
- CentOS下配置Tomcat开机自启动
- Linux下设置开机自启动Tomcat
- Linux下设置开机自启动Tomcat
- 关于网站中图片排名优化的技巧是?
- CPU调度算法
- 總結——關於2017 10 23測試的分析總結
- oracle hint(提示)大全
- Spring学习笔记(一)
- 17102101_CentOS7下利用systemd机制实现tomcat开机自启动
- nio使用之netty框架
- codeforces 411 div2-find amir
- 《c语言程序设计》例 2-8 2-9 2-10 2-11
- Gson 解析数组数组时
- springboot 快速集成的一些启动类模块
- 关于SimpleDateFormat安全的时间格式化线程安全问题
- Qt 学习 第6节 添加绘图控件Qwt
- ICCV2017: Unlabeled Samples Generated by GAN Improve the Person Re-Identification Baseline in Vitro