デーモンで始まったプロセスを終了するには?

デーモンで始まったプロセスを終了するには?

を使用してプロセスを開始しますfoo &

次のように出力されます。

[1] 16915

プロセスIDだと思います。この数字をMY_PROCESS_ID(たとえば)という変数にどのように保存できますか?

その後、次のようにできます。

kill $MY_PROCESS_ID

私のプロセスIDは終了します。

答え1

foo &
bg_pid=$!
kill "$bg_pid"

ジョブ番号とともにシェルの内部コマンドを使用することもできますkill(少なくとも場合)。bash

foo &
kill %1

しかし、簡単ではないかもしれません。相互作用がより容易になる可能性があります。しかし、一緒に

kill %+

または

kill %

あなたはいつも最後のものを手に入れます。コマンドラインの一部を介して終了するタスクを識別することもできます。man bashブロックを検索してみてくださいJOB CONTROL

答え2

$!最後のプロセスがバックグラウンドで開始された場合、この変数はPIDです。あなたはこれを行います:

foo &
my_process_id=$!

: other stuff ...

kill "$my_process_id"

関連情報