Tomcat设置以普通用户身份启动运行—Daemon/jsvc方式

Tomcat 3662℃

通常我们在开发环境使用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

转载请注明:零五宝典 » Tomcat设置以普通用户身份启动运行—Daemon/jsvc方式