ソースを介して実行されているバックグラウンドプロセスのPIDを取得します。

ソースを介して実行されているバックグラウンドプロセスのPIDを取得します。

だから私はソースとして実行する小さなスクリプトを持っていて(興味のある人のためにスクリプトを実行している人のための正しい$ SECONDS値を得るためにこれを行います)、プログラムをバックグラウンドに置きます。このスクリプトには、一時ファイルを更新するために毎秒実行される無限ループがあります。

だから私の質問は、一時ファイル/スクリプトの更新を終了するために終了する必要があるスクリプト内のループのPIDを取得する方法です。

答え1

  1. あなたが実際には別のスクリプトではありません。これは、ソースのすべての行が呼び出されるソース/場所/スクリプトに存在するのと同じです。

  2. ループにはPIDはありません。前景にある場合は、現在のPIDで動作します。ただし、これをバックグラウンドで送信すると、ジョブは独自のPIDを取得します。以下を使用して取得できます。

    do-something-in-a-loop & pid=$!

  3. ジョブのジョブ仕様がわかっている場合は、それを使用することもできます。職業が1つだけならできますkill %1

答え2

簡単に言えば、ループは別のプロセスで実行されないため、独自のPIDを持っていません。つまり、ループのPIDはスクリプトのPIDです。

より便利な回答を得るには、実際のコードを投稿してください。

関連情報