基本的に、独自の子プロセスを作成する可能性のあるいくつかのプロセスを動的に開始します。また、作成したプロセスの特定のグループを必要なときにいつでも強制終了します。
考えられる1つの方法は、名前でプロセスを開始し(グループとして区別するため)、pkill
を使用して名前でプロセスを強制終了することです。
問題は、pkill
を使用して名前でプロセスを終了できるように、名前でプロセスを開始する方法ですか?私も他の解決策を受け入れています。
exec
Shellビルトインを使用できます。
bash -c "exec -a MyUniqueProcessName <command> &"
<command>
は現在のシェルを置き換えます。新しいプロセスは作成されません。そのため、exec
を呼び出すために新しいシェルを開始しています。
次に、次の方法でプロセスを強制終了できます。
pkill -f MyUniqueProcessName
同じ名前で複数のプロセスを開始すると、pkill -f <name>
はそれらすべてを強制終了します。
AMItac/Solarisエージェンシー
私はオーディオトランスコーディングツールでこのケースを持っています。 (3回実行)が1つだけの名前があります。
私は次のことをしました。シェルツールからbin dirに移動して、それを3回コピーしてから、新しい名前を付けました。 tc-1、tc-2、tc-3(小さなツールなので、ハードディスクスペースをあまり消費しません(脂肪質のバイナリでは、他の言及された方法を使用しないでください)
そのため、プロセスは一意の名前で開始され、続行したい他のトランスコーディングプロセスを強制終了することなく、この一意の名前で強制終了できます。
別のトリックMIGHT作品....
#bashスクリプトName.shを追加して、実行可能にします。そこにコマンドを入力し、bashスクリプト自体を開始します。 Centosでは、ビン名自体ではなく、実行したBashscript名が使用されます。
何かがそこに誰かを助けることを願っています。