web-dev-qa-db-ja.com

ubuntuのUPSTART機能を使用してpythonスクリプトを再起動しますが、rootとしては再起動しませんか?

私はUbuntuのupstart機能を使用してPythonスクリプトを実行しているので、何らかの理由で私のPythonスクリプトが停止または強制終了された場合、自動的に再起動してすべてを再起動できます正常に動作しています-

そこで、UbuntuのUPSTART機能を使用して、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を確認すると、ルートとして実行されていることを常に確認しています。ルートとして実行したくありません。代わりに、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ファイルを配置してから、他のコマンドで実行する必要がある場所は他にありますか?

SudoSudo start testingとして実行して、pythonスクリプトを開始したくないし、rootとして開始したくないので、開始したいだけです。 dedsアカウントとして。これを行う他の方法はありますか?

1
arsenal

2つのオプションがあります。起動バージョン(initctl --versionコマンドを使用)が1.4以上の場合は、testing.confファイルに次の行を追加します。

setuid deds
setgid deds

それ以外の場合は、exec行を次のように変更します。

exec Sudo -u deds python testing.py
2
CameronNemo