一、为什么生产环境中要以daemon方式运行tomcat
通常我们在开发环境(例如windows)使用tomcat时可以直接调用$CATALINA_HOME/bin/startup.bat来启动 tomcat,调用$CATALINA_HOME/bin/shutdown.bat来关闭tomcat。然而在生产环境(通常是linux)中我们需要 将tomcat配置成以daemon守护进程来运行,主要是因为- 以daemon方式运行tomcat可以使tomcat不受终端影响,不会因为退出终端而停止运行。
- 可以让tomcat以普通用户身份运行
- 可以让tomcat在系统启动时自动运行
二、如何将tomcat配置成守护进程
将tomcat配置成守护进程需要借助apache-commons-daemon项目的jsvc工具(http://commons.apache.org/proper/commons-daemon/jsvc.html),通常该工具会包含在我们下载的tomcat包中($CATALINA_HOME/bin/commons-daemon-native.tar.gz)1.配置JAVA_HOME,CATALINA_HOME两个环境变量
1
2
| export JAVA_HOME= /opt/jdk export CATALINA_HOME= /opt/tomcat |
1
2
3
4
5
6
| cd $CATALINA_HOME /bin tar -xvf commons-daemon-native. tar .gz cd commons-daemon-1.0.x-native-src /unix . /configure make cp jsvc ../.. |
1
| useradd -s /sbin/nologin tomcat |
chown -R $CATALINA_HOME tomcat chgrp -R $CATALINA_HOME tomcat |
$CATALINA_HOME/bin/daemon.sh是tomcat官方为我们提供的一个脚本模版,简单修改即可
cp $CATALINA_HOME/bin/daemon.sh /etc/init.d/tomcat
在注释位置加入chkconfig配置,使得该脚本可以被chkconfig命令识别,从而可以设置成开机启动tomcat
1
| # chkconfig: 2345 85 15 |
1
2
3
| JAVA_HOME= /opt/jdk CATALINA_HOME= /opt/tomcat TOMCAT_USER=tomcat |
1
| chkconfig tomcat on |
三、结论
经过以上配置后tomcat便能够以守护进程方式运行,并且可以随系统启动而启动运行以下命令开启tomcat
1
| service tomcat start |
1
| service tomcat stop |