私は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
ファイルを配置してから、他のコマンドで実行する必要がある場所は他にありますか?
Sudo
をSudo start testing
として実行して、pythonスクリプトを開始したくないし、rootとして開始したくないので、開始したいだけです。 deds
アカウントとして。これを行う他の方法はありますか?
2つのオプションがあります。起動バージョン(initctl --version
コマンドを使用)が1.4以上の場合は、testing.confファイルに次の行を追加します。
setuid deds
setgid deds
それ以外の場合は、exec
行を次のように変更します。
exec Sudo -u deds python testing.py