web-dev-qa-db-ja.com

別の名前でプロセスを開始するにはどうすればよいですか?

基本的に、独自の子プロセスを作成する可能性のあるいくつかのプロセスを動的に開始します。また、作成したプロセスの特定のグループを必要なときにいつでも強制終了します。

考えられる1つの方法は、名前でプロセスを開始し(グループとして区別するため)、pkillを使用して名前でプロセスを強制終了することです。

問題は、pkillを使用して名前でプロセスを終了できるように、名前でプロセスを開始する方法ですか?私も他の解決策を受け入れています。

9
cache

exec Shellビルトインを使用できます。

bash -c "exec -a MyUniqueProcessName <command> &"

<command>は現在のシェルを置き換えます。新しいプロセスは作成されません。そのため、execを呼び出すために新しいシェルを開始しています。

次に、次の方法でプロセスを強制終了できます。

pkill -f MyUniqueProcessName

同じ名前で複数のプロセスを開始すると、pkill -f <name>はそれらすべてを強制終了します。

10
Eric Carvalho

AMItac/Solarisエージェンシー

私はオーディオトランスコーディングツールでこのケースを持っています。 (3回実行)が1つだけの名前があります。

私は次のことをしました。シェルツールからbin dirに移動して、それを3回コピーしてから、新しい名前を付けました。 tc-1、tc-2、tc-3(小さなツールなので、ハードディスクスペースをあまり消費しません(脂肪質のバイナリでは、他の言及された方法を使用しないでください)

そのため、プロセスは一意の名前で開始され、続行したい他のトランスコーディングプロセスを強制終了することなく、この一意の名前で強制終了できます。

別のトリックMIGHT作品....

#bashスクリプトName.shを追加して、実行可能にします。そこにコマンドを入力し、bashスクリプト自体を開始します。 Centosでは、ビン名自体ではなく、実行したBashscript名が使用されます。

何かがそこに誰かを助けることを願っています。

0
user814973