我有一台安装了 Tomcat 的 ec2 机器/redhat。我只希望 userX 启动此应用程序,而不是 ec2-user。但是,ec2 在重新启动后会自动使用 ec2-user 启动。如何让我的 userXstartup.sh
自动执行命令。目前我通过使用 userX 登录来手动完成,然后bash /opt/tomcat/bin/startup.sh
谢谢
答案1
创建一个系统服务User=userX
服务定义中有。一旦启用,systemd 将在启动时启动它。
答案2
创建文件/etc/systemd/system/whatever.service
该文件内容可以简单如下:
[Unit]
Description=<whatever>
After=default.target
[Service]
Type=idle
User=<USERX>
Group=<GROUPX>
ExecStart=/opt/tomcat/bin/startup.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target
设置您创建的自定义 systemd 服务文件的所有权和权限
chown root.root /etc/systemd/system/whatever.service
chmod 644 /etc/systemd/system/whatever.service
设置服务正在执行的所有权和执行权限
chown USERX.GROUPX /opt/tomcat/bin/startup.sh
chmod 750 /opt/tomcat/bin/startup.sh
sysytemctl daemon-reload
systemctl enable whatever.service
whatever.service
请参阅其他发帖者的 systemd 服务描述链接,了解可以在您创建的自定义文件中配置的所有项目;将名称更改为您喜欢的任何名称。