当tomcat作为root下的服务运行时,如何以非root方式重启/启动/停止tomcat?

时间:2016-06-21 17:56:39

标签: java linux tomcat jenkins centos6

我已经看过很多关于在centos / ubuntu / linux上运行tomcat的教程和技巧。

我在aws中使用centos image来运行tomcat。 我没做sudo yum install tomcat7*。这将创建一个tomcat服务帐户,将运行tomcat run。我没有这样做的原因是因为我需要将war文件复制(scp)到webapps目录中,我不能直接scp为tomcat用户。

相反,我创建了一个带密码的tomcat用户。 我下载了tar.gz,解压缩并将tomcat移动到/ usr / share / tomcat7。

按照blog的说明,我编辑了/etc/rc.d/init.d/tomcat,如下所示。

!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSP container.
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64
CATALINA_HOME=/usr/share/tomcat7
export JAVA_HOME CATALINA_HOME
exec $CATALINA_HOME/bin/catalina.sh $*

然后我执行了以下命令

sudo chmod 755 /etc/rc.d/init.d/tomcat
sudo chkconfig --level 2345 tomcat on

我重新启动了计算机,并在启动时由root用户激活了tomcat。

我还可以看到tomcat页面显示corectly。

现在,我把我的战争变成了webapps目录(作为tomcat用户)。 停止了tomcat并重新启动

sudo /etc/init.d/tomcat stop
sudo /etc/init.d/tomcat start

尝试写入catalina.out时,我收到权限被拒绝错误。这是因为在centos重启后root会触及catalina.out文件,现在当我重新启动tomcat为“tomcat”用户时,它没有写入权限。

我更改了catalina.out(chown tomcat:tomcat catalina.out)的所有权。更改后,我看到tomcat启动并正确记录。

现在问题是什么是正确的方法。 1)我将jenkins工作复制war文件到tomcat。所以要重新启动服务,我需要sudo,我不能从jenkins那里。

2)改变catalina.out的所有权是不对的。如果机器重新启动,catalina.out由tomcat拥有,root无法写入。所以这个catalina.out存在root或tomcat用户拥有的问题。

感谢您的建议

0 个答案:

没有答案
相关问题