8

Linux で Minecraft を実行しています。これには、実行可能な .jar ファイルの実行が含まれます。これは、「minecraft」ではなく、ps の下に「java」として表示されることを意味します。「minecraft」というプロセス名を付けたいと思います。

周りを見回すと、bash を介してプロセス名を割り当てるための次のヒントが見つかりました。

Java アプリケーション プロセスの名前を変更するには?

exec -a goodname java ...

私は通常、次のように実行します。

java -cp ~/Games/Minecraft/Minecraft.jar net.minecraft.LauncherFrame

そこで、bash スクリプトを作成してみました:

#!/bin/bash
exec -a minecraft java -cp ~/Games/Minecraft/Minecraft.jar net.minecraft.LauncherFrame

しかし、これを実行すると、ps コマンドの下に「java」と表示されます。

私は何を間違っていますか?

4

1 に答える 1

2

わたしにはできる。私はJavaでテストしていませんが、次のようにテストしましたsleep:

victor@vz:~$ exec -a minecraft sleep 1m &
[1] 3858
victor@vz:~$ ps x | grep mine
 3858 pts/2    S      0:00 minecraft 1m
 3860 pts/2    S+     0:00 grep --color=auto mine
victor@vz:~$ 

ただし、ドキュメントからわかる限り、これは単なる表面的な変更のようです。

victor@vz:~$ help exec exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...] シェルを指定されたコマンドに置き換えます。

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
any redirections take effect in the current shell.

Options:
  -a name pass NAME as the zeroth argument to COMMAND

この回答に対するOPのコメントを参照して、Javaを使用してリモートマシンでもテストしました:

victorz@exa:~$ javac test.java # spits out an Administrator.class file among others
victorz@exa:~$ exec -a minecraft java Administrator &
[1] 13142
victorz@exa:~$ ps x | grep mine
13142 pts/1    Sl     0:00 minecraft Administrator
13161 pts/1    S+     0:00 grep --color=auto mine
victorz@exa:~$ 

多分あなたはへのxスイッチを使用していませんpsか?xスイッチを使わないとマッチしません。

于 2011-01-10T19:07:46.997 に答える