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


9

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

watch 'jobs'

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

watch 'ps'

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

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

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



1
より有用な質問は、「どうすればそれを機能させることができますか?」ただし、なぜ(この場合)の方が興味深いのでしょうか。
ctrl-alt-delor

回答:


20

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.