終了したジョブの回復

終了したジョブの回復

並列操作の CPU 使用量を制限する端末ウィンドウを誤って閉じました。これで、新しい端末ウィンドウにある場合、ps -e Sタスクは次のように表示されます。

 311029 pts/0    TN+  275:25 jobname

復元する方法はありますか?私はこれを試しましたが、fgこのコマンドが何をしているのかbgわからないので、jobsとにかく再び機能しません。

答え1

TN+表示される出力はps3つを意味します。これらの3文字は「プロセスフラグ」であり、各文字は表示されたプロセスの特性を示す。完全なリストは、マニュアルページのセクション7にあります。ps関連部分では次のようになります。

T ジョブ制御信号によって停止されるフォアグラウンドプロセスグループでの
N 低い優先順位(他のユーザーに良い)
+

ここで、関連フラグは、ジョブがT停止したことを示します。プロセスが現在使用されている端末に割り当てられていないため、プロセスを他の端末にオフロードすることはほとんどの実用的な目的では不可能ですが、その状態を知るのに十分な長さの停止プロセスを起こす可能性があります。端末が消えましたSIGHUP。実際に端末の場合は、送信する際には注意が必要です。行く去る。

まず、次のコマンドを使用してプロセスを再開してみてくださいSIGCONT

$ kill -CONT 311029

第二に、これが機能しているかどうかにかかわらず、手動で送信して自分でクリーンアップSIGHUPしたい場合は、ホームレスの状態を再び主張することができます。

$ kill -HUP 311029

fgプロセスに対処しない理由は、jobs現在のシェルに問題のプロセスに対する所有権がないためです。以前は)は他の(古い死んだ)シェルプロセスが所有しています。

関連情報