私は次のコマンドを実行しましたnohup some_command &
。このコマンドはバックグラウンドで実行されます。コマンドとして見ることができますjobs
。
出力例:
[1]+ Running nohup some_command &
どういうわけか持てますか?生きる次のようなコマンドのjobs
状態表現top
働く?それでは、nohup some_command &
完了するとリストからすぐに消えますか?
答え1
プロンプトに入力している場合、または他のジョブがフォアグラウンドにあるときにジョブ完了通知をすぐに印刷したい場合は、を実行してくださいset -o notify
。
フォアグラウンドコマンドに現在のシェルのバックグラウンドジョブのステータスを表示させるには、jobs
ループで実行できます。フルスクリーンモードでは簡単に実行できます。
tput clear
jobs
while sleep 1; do
tput clear
jobs
done
画面を消去せずにプロンプトの下にリストを表示するには、最初にカーソル位置を保存し、実行するたびに復元します。
tput sc
jobs
while sleep 1; do
tput rc
jobs
done
答え2
シェル関数を生成できます。
myjobwatch() { while true; do jobs; sleep 2; clear; done; }
それからただ実行myjobwatch