Tomcat init 脚本并添加服务自启动

简介:

很多用源码编译安装和一些用tar包直接解压缩的java程序都没有init脚本,不能像httpd或者nginx这种服务直接使用service httpd start,也不能使用/etc/init.d/httpd start 来启动。对于这种情况,我们可以自己写一个init脚本,并将命令用chkconfig --add 命令将该服务器加入自启动。

下面我们以tomcat为例来演示这一过程:


一、创建Tomcat init 脚本,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
#tomcat:Start/Stop/Restart tomcat
#chkconfig:234 20 80
#description: Apache Tomcat init script
 
 
export  JAVA_HOME= /usr/local/jdk1 .8.0_66
export  JRE_HOME=$JAVA_HOME /jre
export  CLASSPATH=.:$JAVA_HOME /lib :$JRE_HOME /lib
export  PATH=$PATH:$JAVA_HOME /bin
 
TOMCAT_BIN= /usr/local/apache-tomcat-8 .0.29 /bin
TOMCAT_HOME= /usr/local/apache-tomcat-8 .0.29
TOMCAT_USER=root
TOMCAT_PID(){
  echo  ` ps  -ef |  grep  $TOMCAT_HOME |  grep  - v  grep  tr  -s  " "  cut  -d  " "  -f2`
}
 
 
start(){
pid=$(TOMCAT_PID)
if  [ -n  "$pid"  ]
then
   echo  -e  "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
else
#start tomcat
echo  -e  "\e[00;32mStarting tomcat\e[00m"
/bin/su  $TOMCAT_USER -c $TOMCAT_BIN /startup .sh
fi
return  0
}
 
stop(){
pid=$(TOMCAT_PID)
if  [ -n  "$pid"  ]
then
   echo  -e  "\e[00;31mStoping Tomcat\e[00m"
sh $TOMCAT_BIN /shutdown .sh
else
   echo  -e  "\e[00;31mTomcat is not running\e[00m"
fi
return  0
}
 
status(){
     pid=$(TOMCAT_PID)
     if  [ -n  "$pid"  ]
        then  echo  -e  "\e[00;32mTomcat is running whit pid: $pid\e[00m"
     else
        echo  -e  "\e[00;31mTomcat is stopped\e[00m"
     fi
return  0
}
 
 
case  "$1"  in
   start)
   start
;;
   stop)
   stop
;;
   restart)
   stop
   sleep  3
   start
;;
   status)
   status
;;
 
    *)
echo  'Usage: $0 {start|stop|restart|status}'
exit  1
esac
 
exit  0



注意事项:

脚本中需要输出JAVA_HOME 和JRE_HOME等变量。否则执行service tomcat start|stop命令会报错。


二、如何将tomcat服务加入到开机自启动?

1、服务脚本必须在/etc/init.d/目录下,脚本中包含以下两行内容:启动级别和description

1
2
#chkconfig:234 20 80
#description: Tomcat is a java Servlet Container


2、chkconfig --add service_name 增加服务











本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1775824,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
228 2
|
2天前
|
应用服务中间件 Shell
tomcat版本自动升级脚本
请注意,这只是一个简单的示例脚本,用于演示自动升级Tomcat版本的思路。实际部署中,您可能需要根据您的环境和需求对脚本进行更详细的定制和错误处理。确保在升级Tomcat版本之前备份重要数据和配置文件,以防止意外情况发生。
5 0
|
3天前
|
应用服务中间件
jeecgboot开发环境服务启动刷新没问题,部署到tomcat,F5刷新或者浏览器刷新,会出现404
jeecgboot开发环境服务启动刷新没问题,部署到tomcat,F5刷新或者浏览器刷新,会出现404
|
18天前
|
Java Shell 应用服务中间件
centos7_tomcat开机自启的shell脚本参考
centos7_tomcat开机自启的shell脚本参考
16 0
|
5月前
|
应用服务中间件
今日分享记录:WIN10中如何将tomcat注册到Server服务中
今日分享记录:WIN10中如何将tomcat注册到Server服务中
60 1
|
3月前
|
运维 Java 应用服务中间件
Tomcat安装shell脚本
Tomcat安装shell脚本
34 7
|
4月前
|
监控 Java 应用服务中间件
【Linux】Web服务之Tomcat服务
【Linux】Web服务之Tomcat服务
40 0
|
5月前
原生表格纵向滚动条
原生表格纵向滚动条
|
7月前
|
应用服务中间件 Linux Windows
一台tomcat如何部署多个端口不同的服务?
复制tomcat下webapps文件夹为webapps1 , webapps2 (文件名称无要求 , 需要部署N个项目就复制N-1个文件夹 , 比如部署三个项目 , 再复制两个webapps就行 , 以此类推)
78 0
|
7月前
|
Java Unix 应用服务中间件
tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
56 0