通常我们在开发环境使用tomcat时可以直接调用安装目录下的bin/startup.sh来启动,调用bin/shutdown.sh来关闭。然而在生产环境中我们需要将tomcat配置成以daemon守护进程来运行,这样做到好处有:可以让tomcat以普通用户身份运行,防止网站被黑后的进一步权限提升。还可以使tomcat不受终端影响,不会因为退出终端而停止运行。本文演示linux下如何设置tomcat以普通身份运行。在开始之前已经安装了tomcat,可以参考Linux系统安装配置tomcat 7
1.安装依赖和创建普通用户
yum -y install gcc gcc-c++ make expat-devel useradd -M -s /usr/sbin/nologin tomcat chown -R tomcat:tomcat /usr/local/tomcat
2.解压安装JSVC
Commons Daemon可以实现将一个普通的Java应用变成系统的一个后台服务,而jsvc是tomcat发行版自带一套用c编写的Commons Daemon工程的复制品。通常该工具已包含在tomcat包中的bin目录下, tomcat就是该工具配置成守护进程的。
cd /usr/local/tomcat/bin/ tar zxvf commons-daemon-native.tar.gz cd commons-daemon-1.1.0-native-src/unix/ ./configure make cp jsvc ../..
3.制作启动脚本并加入开机启动
tomcat安装目录下的bin/daemon.sh是官方为我们提供的一个脚本模版,在文件开始出加入 #chkconfig:35 85 15使得该脚本可以被chkconfig命令识别。由于service命令会去除系统环境变量,因此还需配置运行时需要的几个变量。最后再设置成开机启动tomcat。
cp /usr/local/tomcat/bin/daemon.sh /etc/init.d/tomcat sed -i "2i #chkconfig:35 85 15" /etc/init.d/tomcat sed -i "2i "TOMCAT_USER=tomcat"" /etc/init.d/tomcat sed -i "2i "CATALINA_HOME=/usr/local/tomcat"" /etc/init.d/tomcat sed -i "2i "JAVA_HOME=/usr/local/jdk1.7.0_80"" /etc/init.d/tomcat chkconfig tomcat on
4.启动tomcat
service tomcat start
5.查看tomcat运行身份和监听端口
ps aux|grep tomcat netstat -antp|grep jsvc