GNU / Linuxでプロセスに特定の名前を付けますか?


10

psコマンドに特定の識別子が含まれるようにプロセスを起動するにはどうすればよいですか?

UPD:私は1つのボックスでいくつかのサーバーを実行しています。それらのほとんどは配置モードです。ただし、1つは開発中です。すべてのサーバーがPython的であり、この疾患は、すべてのサーバーは次のように記載されていることであるpythonpsに、それが不可能にされ、killallそのまま他の人を残して、開発に1。

UPD:DavidとGNUixが提案したように、各サーバー用のPythonインタープリターとbashスクリプトへのシンボリックリンクを作成しました。

回答:


7

シンボリックリンクを作成することでうまくいくはずですが、症状ではなく病気を知っていればより役に立ちます。正確に何をしようとしていますか?より良い方法があるかもしれないので

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)--
(~)

更新: あなたができる追加情報に基づいて(私はもっと簡単な方法があると確信していますが、現時点では私には思いつきません)起動時にサーバーにPIDをファイルに書き込んでから、-9を強制終了できます。cat /var/run/devserver.pidしかし、それはプログラミングの質問になります:)

もう一度更新し ます。起動時にサーバーのPIDを取得するために、いくつかのシェルトリックを行うこともできます。たとえば、サーバーの起動に使用するコマンドをラップするstartmyserverというシェル関数を作成できますが、 $もキャプチャします!スタートアップ名に基づいたファイルに-次に、ServerFaultの「インバウンド」であるシェルスクリプトについて説明します。:-)


4

実行するバイナリの名前を変更できます。バイナリへのシンボリックリンクを使用するだけで済むかもしれません。

本当に名前を変更したい場合、最善の方法は、argvを設定し、実行するプロセスを実行する単純なラッパーを使用することです。ここでサンプルコードを提供する時間はありませんが、約10時間で大声で叫ぶと、私が何ができるかがわかります。


まさに私のポイント。そのためのコードが必要です(argv [0]をチェックすると問題が発生する可能性があるバイナリの名前変更/(sym)リンクは別として)
Martin M.

ほとんどの埋め込み(busybox、dropbear)を実行する場合、一部のバイナリはうまく機能しません
2015

3

見てくださいhttps://github.com/electrum/procname。環境変数を使用して、任意のプロセスのプロセス名を設定できます。

使用法:

LD_PRELOADおよびPROCNAME環境変数を設定してJavaを実行します。

LD_PRELOAD = / path / to / libprocname.so PROCNAME = hello java -jar foo.jar


2

これは一般的なものであり、言語固有の質問ではないため、実際にはSOに属していません。

簡単な答えは簡単ではありません。つまり、シェルまたはprocfs / sysfsの機能内からは実行できません。それを実現するには、外部ユーティリティを使用する必要があります。

ここには、その方法と理由についての長い説明があります。かなりC中心であることに注意してください。

更新:

彼らはゲームを変えるpythonです。SOになりすぎない限り、これらを変更してこのモジュールまたは同様のアプローチを利用する方がおそらく簡単でしょう。


touche ..私はもっと簡単な方法があることを知っていました:)
GNUix

Cコードは、出力量が多いため、必要以上に冗長です。それを縮小することは可能であるはずですが、それは私が提案していたものとほとんど同じです。それに伴うコードがいくつかあるだけです:)欠けているのは、コードを実行するexecです:)
David Pashley
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.