複数のバックグラウンドプロセスを開始してコマンドラインから呼び出すと、正しく機能するスクリプトがあります。
しかし、xsessionの起動イベントと一部のudevイベントでも同じスクリプトが呼び出されます。どちらの場合も、バックグラウンドプロセスは消えます。
スクリプトに sleep 10 を入れると bg プロセスが始まるのがわかりますが、スクリプトが存在すると bg プロセスを占めるようになります。 bgプロセスを呼び出して解決しましたstart_stop_deamon --background
が、あまり違いはありませんでした。ただし、コンソールからスクリプトを呼び出してセッションを終了でき、bgプロセスはまだ実行中です。
今の問題を解決するほかにも(どんな助けでも感謝します)、その背後に隠れている論理を理解したいと思います。私はそれが端末の欠如に関連していると思います。
答え1
以下を使用してプロセスを保護しますnohup
。
nohup command-name &
stdoutとstderrを無視してnohup.outにリダイレクトしたい場合でも、この手法を使用できます。
command-name & disown