このセッションで開始されたプロセス

このセッションで開始されたプロセス

ターミナルセッションを開き、いくつかのプロセスを開始しました&。ターミナルウィンドウを閉じようとすると、バックグラウンドでまだ実行中のタスクがあることを示す警告メッセージが表示されます。

実行中のプロセスを見ることができますが、psこのセッションでどのプロセスが開始されたかをどうやって知ることができますか?

答え1

jobs -l
アクティブジョブのプロセスIDのリスト

答え2

bash現在のセッションで開始されたすべてのバックグラウンドプロセスを見つけるには、jobs組み込み機能を使用できますbash

からhelp jobs

jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
Display status of jobs.

Lists the active jobs.  JOBSPEC restricts output to that job.
Without options, the status of all active jobs is displayed.

一方、bashこのセッションで開始されたすべてのプロセスを見つけるには、この$$変数を使用bashして現在のインスタンスのPIDを取得できますbash。その後、コマンド出力を解析して、ps -ef親プロセスID(PPID)が次のすべてのプロセスを見つけることができます$$

ps -ef | grep -P "^[^ ]+\s+[^ ]+\s+$$\s"

答え3

ps -auxfバックグラウンドプロセスがどのシェルに属しているかを確認するには、実行してください。

関連情報