新建用戶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