简单使用普通用户启动tomcat

新建用户tomcat,该用户不能登录

useradd tomcat -s '/sbin/nologin'

将/usr/local/tomcat/bin/startup.sh更名

mv /usr/local/tomcat/bin/startup.sh /usr/local/tomcat/bin/startup_.sh

将/usr/local/tomcat/bin/shutdown.sh更名

mv /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/shutdown_.sh

新建启动脚本startup.sh

touch /usr/local/tomcat/bin/startup.sh

其内容如下:

#!/bin/bash
## set user tomcat to /bin/bash to start server
usermod -s /bin/bash tomcat
## use tomcat user to start server
su - tomcat -c /usr/local/tomcat_web/bin/startup_.sh
## set user tomcat to /sbin/nologin 
usermod -s /sbin/nologin tomcat

新建关闭脚本shutdown.sh

touch /usr/local/tomcat/bin/shutdown.sh

内容如下:

#!/bin/bash
## set user tomcat to /bin/bash to shutdown server
usermod -s /bin/bash tomcat
## use tomcat user to shudown server
su - tomcat -c /usr/local/tomcat_web/bin/shuwdown_.sh
## set user tomcat to /sbin/nologin 
usermod -s /sbin/nologin tomcat

设置tomcat用户权限

chown -R tomcat:tomcat /usr/local/tomcat/
chmod -R 744  /usr/local/tomcat

判断tomcat用户是否存在

ret=`id -u tomcat >& /dev/null`

if [ $? -ne 0 ];then
   echo "not exist"
fi

 也可以普通用户使用开机启动服务启动tomcat

 /usr/lib/systemd/system/下新建文件tomcat.service,将下面内容拷贝其中

[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target remote-fs.target nss-lookup.target redis.service mysql.service
Requires=mysql.service  redis.service
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat

[Install]
WantedBy=multi-user.target

注册到系统服务

systemctl enable tomcat.service

使新注册服务生效

systemctl daemon-reload

 

posted @ 2018-06-07 18:31  大坑水滴  阅读(7144)  评论(0编辑  收藏  举报