我想以(我创建的)用户身份在 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
。