Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622646
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: LINUX

2016-05-19 15:48:23

CentOS7开始,从/etc/init.d脚本改为了systemctl管理服务。
本文记录了把tomcat7加入systemd管理的步骤。

首先,需要为tomcat配置pid。
bin/catalina.sh
  1. # Copy CATALINA_BASE from CATALINA_HOME if not already set
  2. [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
  3. # 设置pid。一定要加在CATALINA_BASE定义后面,要不然pid会生成到/下面
  4. CATALINA_PID="$CATALINA_BASE/tomcat.pid"

创建脚本/usr/lib/systemd/system/tomcat.service
  1. [Unit]
  2. Description=tomcat
  3. After=syslog.target network.target remote-fs.target nss-lookup.target
  4. [Service]
  5. Type=forking
  6. Environment="JAVA_HOME=/opt/jdk1.7.0_40" "JENKINS_HOME=/home/lmis/.jenkins"
  7. PIDFile=/opt/apache-tomcat-7.0.57/tomcat.pid
  8. ExecStart=/opt/apache-tomcat-7.0.57/bin/startup.sh
  9. ExecReload=/bin/kill -s HUP $MAINPID
  10. ExecStop=/bin/kill -s QUIT $MAINPID
  11. PrivateTmp=true
  12. [Install]
  13. WantedBy=multi-user.target

注意,需要有Environment来设置环境变量,否则启动时会报JAVA_HOME未定义而失败。
另外,由于需要发布jenkins,所以需要设置JENKINS_HOME。

现在还没有搞清楚systemd在执行启动命令时,使用的环境变量是在哪里设置的,
暂时只好通过Environment来设置。在/etc/profile中设置是不起作用的。

启用tomcat服务(开机自启动?):
systemctl enable tomcat.service

查看状态:
systemctl status tomcat.service

启动服务:
systemctl start tomcat.service

停止服务:
systemctl stop tomcat.service

修改tomcat.service文件后需要执行下面命令使其生效:
systemctl daemon-reload


补充:有两个问题没有搞清楚,
1 systemd启动服务时,环境变量在哪里设置。
2 按上面方法启动的tomcat,使用jps查询不到,为什么?


阅读(4621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~