我想在启动时启动一个长时间运行的自定义脚本。该脚本必须在特定用户名下运行。到目前为止我已经成功使用了 screen 命令并切换到了自定义脚本中的用户。但我宁愿在该用户下运行 screen 命令,以便稍后登录该用户并恢复屏幕。
当在控制台中以 root 身份运行时,此命令确实可以工作,但它不能作为启动脚本中的一行工作。
su -c "screen -S sessionname -d -m /path/cot/bash/script" 用户名
答案1
在 GNU/Linux 下启动时,你不应该使用su
(如这取决于 PAM/dbus,可能尚不可用),但是runuser
:
runuser username -l -c "screen -S sessionname -d -m /path/to/bash/script"
当使用runuser
后跟用户名时,语法与 相同su
。
答案2
明白了,我应该使用 -l 标志:
su -l -c "screen -S sessionname -d -m /path/to/bash/script" username