スクリプトを実行しているサービスの確認

スクリプトを実行しているサービスの確認

私は一部の同僚と開発サーバーを共有しています。 Ubuntuサーバーであり、そこにいくつかのスクリプトがあるので、基本的にプロセスを実行する一般的な方法はsessionを使用することですscreen。私の問題は、これを実行すると実行中ps aux| grep pythonのプロセスが表示されることです。

root     x  x  x x x x  Ss   Apr12  29:58 /usr/bin/python /home/script.py

スクリプトはスクリーンセッションで実行されず、終了すると自動的に開始されるため、どのサービスがプロセスを開始/再起動するかを知る必要があります。助けてくれてありがとう。

答え1

pstreeを使用すると、すべてのプロセスとその親プロセスのツリービューを取得できます。次の例では、PID 1913のpulseaudioの親プロセスを取得します。

$ pstree -sU 1913   
systemd───pulseaudio─┬─{alsa-sink-ALC88}
                     └─{alsa-source-ALC}

あなたの場合は、次のようにpgrepとpstreeを使用します。

pstree -sU $(pgrep /home/script.py)

スクリプトの親が終了すると、その親が初期化される可能性が高くなります。この場合、親プロセスを取得するにはより積極的な方法が必要です。

関連情報