如何使用 ubuntu 的 UPSTART 功能重新启动 python 脚本但不以 root 身份重新启动?

如何使用 ubuntu 的 UPSTART 功能重新启动 python 脚本但不以 root 身份重新启动?

我正在使用 Ubuntu 的 upstart 功能运行我的 Python 脚本,这样,如果我的 Python 脚本因某种原因死亡或被终止,它可以自动重新启动,并且一切都正常工作 -

所以我决定使用UPSTARTUbuntu 的功能自动重启 Python 脚本。

testing.conf在以下位置创建如下文件后/etc/init/testing.conf-

start on runlevel [2345]
stop on runlevel [016]

chdir /tekooz
respawn

post-stop script
  sleep 30
end script

exec python testing.py

我运行下面的 sudo 命令来启动它,我可以看到该进程正在运行ps ax,我的 python 脚本也运行良好。当我检查上述进程的 pid 时,我总是看到它以 root 身份运行。我不想以 root 身份运行它。相反,我想以deds帐户身份运行它

deds@bx13:/$ sudo start testing
testing start/running, process 3635
deds@bx13:/$ ps aux | grep testing
root      3635  2.4  0.1 364136 15660 ?        Ssl  12:24   0:00 python testing.py

我是否需要将testing.conf文件放在其他地方,然后使用其他命令运行它?

更新:-

就像这样 -

start on runlevel [2345]
stop on runlevel [016]

chdir /tekooz
respawn

post-stop script
  sleep 30
end script

setuid deds

exec python testing.py

答案1

您可以使用设置用户标识

6.31 设置uid

Upstart v1.4 中新增

句法:

setuid <username> 

在运行作业流程之前对用户进行更改。

(和设置组ID如果你想要一个团体的话)


您还可以添加-u <username>exec

相关内容