我如何以非 root 用户身份运行初始化脚本?

我如何以非 root 用户身份运行初始化脚本?

我将此文件放在 /etc/init/proxyserver.conf 中,并在启动时执行此脚本(Ubuntu 11.10):

description "Run code for ProxyServer"
start on runlevel [23]

script
    cd /home/mark/selenium-client
    exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111
end script

这工作正常,但如果我在终端中执行此操作:

ps aux | grep selenium

它返回此屏幕:

root  783   0.0   2.3  680584   23688   ?   Ssl   Apr18   4:45   java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

但我想以非 root 用户身份运行该脚本,我该怎么做?

谢谢!

答案1

你可以运行它定时任务使用@reboot选项

crontab -e 打开用户 crontab。

添加该行@reboot /path/to/script,它应该在重新启动时以该用户身份启动你的脚本

更多例子cron 在这里使用

答案2

你可以使用例如

sudo -u mark exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

使用root权限以指定用户身份执行该进程。


编辑:也许

exec sudo -u mark java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

取决于upstart需要什么(我自己不使用它)。

答案3

在 Upstart 中,使用setuid关键词:

描述“运行 ProxyServer 的代码”
从运行级别 [23] 启动

设置uid标记
chdir /home/mark/selenium-client
exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

script没有必要。)

或者,创建一个用户作业而不是系统本身。

相关内容