【发布时间】:2023-03-24 09:20:01
【问题描述】:
我在 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”。
我做错了什么?
【问题讨论】:
-
exec -a在 Ubuntu 8.04 上为我工作,但它仍然显示所有 java 参数(“-cp”等)并且 killall 不会通过它的新名称找到进程,只有 @ 987654326@ 工作。您可能还希望使用 binfmt 直接从命令行运行 JAR 文件。 -
binfmt 是否允许更改进程名称?如果是这样,在这种情况下我将如何使用它?
-
哦,我的错,使用 binfmt 它仍然显示为 java。此外,“exec -a”也停止为它工作。所以这实际上不是一个解决方案,而是一个完全相反的解决方案。
-
exec -a 在 centos7 下不起作用。