1つある場合、run_script
その内容は次のとおりです。
#run_script file
ls
その後、それを使用してコマンドをbash run_script
実行できますls
。しかし、もう一つができて、run_script
その内容は次のとおりです。
#run_script file
python3 mate30pro5g.py & python3 Mathematica.py & python3 opencv.py &
jobs
を実行した後、コマンドはバックグラウンドジョブを確認できないことを発見しましたbash run_script
。しかし、すべてのタスクが実行されていることがわかりますps aux | grep python3
。しかし、このコマンドを使用してすべてのタスクを管理したいのですが、jobs
なぜこのコマンドでスキャンを見つけることができないのですか?私が逃したものは何ですか?
答え1
を使用して新しいシェルを起動すると、ジョブ制御が失われますbash run_script
。 Pythonプロセスは、新しく開始されたbashプロセスの子プロセスとして実行され、スクリプトが終了すると(現在は死んだ)親プロセスから切り離されます。現在のシェルのサブルーチンでプログラムを起動するには、次のようにスクリプトを取得できます。
. run_script
で違いを確認できますps auxf
。