ps
コマンドで特定の識別子を持つようにプロセスを起動するにはどうすればよいですか?
[〜#〜] upd [〜#〜]:1つのボックスでいくつかのサーバーを実行しています。それらのほとんどは展開モードです。ただし、1つは開発中です。すべてのサーバーはPythonicであり、すべてのサーバーがpython
にps
としてリストされているため、開発中のサーバーをkillall
そのままにして他のサーバーをそのままにすることはできません。
[〜#〜] upd [〜#〜]:DavidとGNUixが示唆したように、各サーバーのPythonインタプリタおよびbashスクリプトへのシンボリックリンクを作成しました。
シンボリックリンクを作成することでうまくいくはずですが、症状ではなく病気を知っていればより役に立ちます。正確に何をしようとしていますか?より良い方法があるかもしれないので
gnuix@defiant)-(08:11pm-:-06/10)--
(~)./0012
my weird program name
PID TTY TIME CMD
7805 pts/1 00:00:00 zsh
14020 pts/1 00:00:00 0012
14021 pts/1 00:00:00 ps
(gnuix@defiant)-(08:11pm-:-06/10)--
(~)ln -s 0012 weird
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)./weird
my weird program name
PID TTY TIME CMD
7805 pts/1 00:00:00 zsh
14046 pts/1 00:00:00 weird
14047 pts/1 00:00:00 ps
(gnuix@defiant)-(08:12pm-:-06/10)--
(~)
pdate:できる追加情報に基づいて(より簡単な方法があると確信していますが、現時点では私に届きません)、サーバーに起動時にPIDをファイルに書き込んでから、 -9を殺すことができます| cat /var/run/devserver.pidしかし、それはプログラミングの質問になります:)
再度更新:起動時にサーバーのPIDを取得するためにいくつかのShellトリックを実行することもできます。たとえば、コマンドをラップするstartmyserverというShell関数を作成できます。サーバーの起動に使用するだけでなく、$もキャプチャします。スタートアップ名に基づいたファイルに-次に、ServerFaultの「インバウンド」であるシェルスクリプトについて説明します。 :-)
実行するバイナリの名前を変更できます。バイナリへのシンボリックリンクを使用するだけで済むかもしれません。
本当に名前を変更したい場合、最良の方法は、argvを設定し、実行するプロセスを実行する単純なラッパーを使用することです。ここでサンプルコードを提供する時間はありませんが、約10時間で大声で叫ぶと、私が何ができるかがわかります。
https://github.com/electrum/procname を見てください。環境変数を使用して、任意のプロセスのプロセス名を設定できます。
使用法:
LD = PRELOADおよびPROCNAME環境変数を設定してJavaを実行します。
LD_PRELOAD =/path/to/libprocname.so PROCNAME = hello Java -jar foo.jar