如何在不同用户重启时自动运行应用程序?

如何在不同用户重启时自动运行应用程序?

我有一台安装了 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 服务描述链接,了解可以在您创建的自定义文件中配置的所有项目;将名称更改为您喜欢的任何名称。

相关内容