回答:
シンボリックリンクを作成することでうまくいくはずですが、症状ではなく病気を知っていればより役に立ちます。正確に何をしようとしていますか?より良い方法があるかもしれないので
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の「インバウンド」であるシェルスクリプトについて説明します。:-)
実行するバイナリの名前を変更できます。バイナリへのシンボリックリンクを使用するだけで済むかもしれません。
本当に名前を変更したい場合、最善の方法は、argvを設定し、実行するプロセスを実行する単純なラッパーを使用することです。ここでサンプルコードを提供する時間はありませんが、約10時間で大声で叫ぶと、私が何ができるかがわかります。
見てくださいhttps://github.com/electrum/procname。環境変数を使用して、任意のプロセスのプロセス名を設定できます。
使用法:
LD_PRELOADおよびPROCNAME環境変数を設定してJavaを実行します。
LD_PRELOAD = / path / to / libprocname.so PROCNAME = hello java -jar foo.jar
これは一般的なものであり、言語固有の質問ではないため、実際にはSOに属していません。
簡単な答えは簡単ではありません。つまり、シェルまたはprocfs / sysfsの機能内からは実行できません。それを実現するには、外部ユーティリティを使用する必要があります。
ここには、その方法と理由についての長い説明があります。かなりC中心であることに注意してください。
更新:
彼らはゲームを変えるpythonです。SOになりすぎない限り、これらを変更してこのモジュールまたは同様のアプローチを利用する方がおそらく簡単でしょう。