0
子プロセスをバックグラウンドプロセスとして呼び出す親シェルがあります。 子シェルでは、親にexitを送信しますが、親プロセスで子のステータスを取得する必要があります。私は同じために "ジョブ"コマンドを使用しています。私は子供の実行状況をキャプチャすることができますが、私は親で完了ステータスを取得しません。unix AIX - 親シェルスクリプト内の子バックグラウンドプロセスの状態を取得します。
#!/bin/ksh
date
./sleep.com&
echo $?
echo $!
pid=$!
echo $pid
jobs $pid
wait $pid
jobs $pid
echo $pid
子シェル(sleep.com-バックグラウンド・プロセス):execution-
September 11, 2017 at 07:58:17 PM
0
12517444
12517444
[1] + Running <command unknown>
./parent.com[10]: jobs: no such job
12517444
の
#!/bin/ksh
sleep 8
exit 10
出力
親シェル - コードと出力の下に見つけてください
jobs
通信のステータスを取得してください子供の完成を記入してください。私の場合は
私はエラーを取得する:
./parent.com[10]: jobs: no such job
おかげ&よろしく
ヒマンシュアグラワル。
感謝Lorinczy。それは私に変数内の子プロセスの出力を与えます。私は待っているコマンドを削除する必要があります。つまり、子プロセスがバックグラウンドにあることを意味します。それでも、子プロセスのステータスを取得できるはずです。私は仕事のコマンドを使って同じことをすることができたと主張しましたが、私がシェルで使用すると、プロセスの完了後に「そういうプロセスはありません」と言います。提案してください。 –
シグナルをサポートしている実際のプログラミング言語を使用することができます。子プロセスが終了するとSIGCHILDシグナルが返されます。 –