私は一部の同僚と開発サーバーを共有しています。 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)
スクリプトの親が終了すると、その親が初期化される可能性が高くなります。この場合、親プロセスを取得するにはより積極的な方法が必要です。