web-dev-qa-db-ja.com

「ジョブ」を監視できないが「ps」を監視できる理由を説明してください。

jobsは、バックグラウンドで実行されているコードを確認するためのお気に入りのコマンドです。それらを動的にチェックするために、私はタイプする傾向があります

watch 'jobs'

何も表示されません。しかしながら

watch 'ps'

完璧に動作します。私は今何ヶ月も同じ過ちを犯しています。

最初の方法が機能しないのに2番目の方法が機能しない理由を理解することで、同じエラーの発生を防ぐことができます。

誰か助けてもらえますか?

9
many

jobsは、現在のシェルの状態(そのシェルでバックグラウンド化されたコマンド)を報告する組み込みです。 watchは実行ごとに新しいシェルを実行しますが、そのシェルのjobswatchの親シェルのジョブを知る方法がありません。 psは外部コマンドであり、シェルの状態を使用することはありません。

20
muru