以用户“tomcat”身份运行 Apache Tomcat

以用户“tomcat”身份运行 Apache Tomcat

我想以(我创建的)用户身份在 Ubuntu 18 上运行 Apache Tomcat tomcat

我没有使用 Ubuntu 默认的 Tomcat,而是直接从 Tomcat 主页下载 tar.gz 包。

我已经将它安装在 中/opt

tomcat出于安全原因,我想以以下方式运行我创建的 tomcat 用户:

sudo useradd -r -s /bin/false tomcat

现在,我想使用以下脚本启动 tomcat:

#!/bin/bash
/bin/su -s /bin/bash -c "/opt/tomcat/bin/startup.sh" tomcat

当我运行该脚本时,我得到以下输出:

ubuntu@server-8x32:/opt/tomcat/bin$ ./start-tomcat.sh 
Password: 

我没有指定密码,而且由于该脚本也是从其他自动执行的脚本调用的,所以我无法每次都提供密码。

所以我的问题是:如何以用户身份启动 Apache Tomcattomcat而不提示输入密码?

答案1

创建tomcat组并创建此文件,/etc/systemd/system/tomcat.service内容如下:

#Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking


Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

使用以下命令启动服务

systemctl start tomcat

这将以 的身份运行该服务tomcat

相关内容