我在Linux下运行Minecraft,涉及运行可执行的.jar文件。这意味着它在ps下显示为“java”,而不是“minecraft”。我想为它指定进程名称“minecraft”。
环顾四周,我找到了以下关于通过bash分配进程名称的提示:
how to change the name of a Java application process?
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”。
我做错了什么?
答案 0 :(得分: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 ...]] [重定向...] 用给定的命令替换shell。
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
开关,否则我无法匹配。