シェルスクリプトからトリガーされるプロセスのプロセス名をどのように設定できますか?
たとえば、シェルスクリプトから1つのJavaクラスファイルを実行するjava <classname>
場合、そのJavaプロセスを実行するJava_Process_1
ときと同じように表示する必要がありますps ax
。
試すexec -a Java_Process_1 java <classname>
Javaプロセスにこれが必要であると仮定すると、JVMのプロパティ機能を利用して、プロセスのラベルを作成できます(必要に応じて、プログラム自体も表示できます)。
java -Dmy.appid=Java_Process_1 <classname>
ただし、一般的には、出力するコマンドラインps
のの値を読み取ります。この値は、コマンドの正確な引数ベクトルの値になり、ヌル文字で区切られます。/proc/$pid/cmdline
これは、「Java_Process_1」のようなカスタム文字列をそこに入れると、何らかの形の非標準的なトリックが必要になることを意味します。
bash を使用している場合は、hwatkins の回答を受け入れる必要があります。それ以外の場合は、http: //cr.yp.to/ucspi-tcp.html の argv0 や runit の chpst ( http://smarden.org/runit/chpst.8 .html ) など
できません。プロセス自体がargv[0]を変更する前に、プロセスが存在する必要があります。