私はPythonスクリプトを実行するためにUbuntuの起動機能を使用しています。これにより、Pythonスクリプトが何らかの理由で死亡または終了すると、自動的に再起動され、すべてが機能します。
UPSTART
だから私はPythonスクリプトを自動的に再起動するUbuntuの機能を利用することにしました。
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として実行されていることがわかります。ルートとして実行したくありません。代わりに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
asを介してPythonスクリプトを起動したくないので、sudo start testing
rootで起動したくなく、deds
アカウントで起動したいと思います。別の方法がありますか?
答え1
2つのオプションがあります。このコマンドを使用する開始バージョンがinitctl --version
1.4 以降の場合は、test.conf ファイルに次の行を追加します。
setuid deds
setgid deds
それ以外の場合は、exec
行を次に変更します。
exec sudo -u deds python testing.py