如何设置 Leiningen 脚本的进程名称,以便 htop 将其显示为“lein”而不是“java..."?

How to set process name for Leiningen script so htop shows it as "lein" and not "java... "?

提问人:Audrius M 提问时间:8/30/2023 更新时间:8/30/2023 访问量:23

问:

如何设置 Leiningen 脚本的进程名称,以便 htop 将其显示为“lein”而不是“java..."?

每个 Leiningen 进程都显示为“java -D...”

我试过了:

#!/bin/bash

# Set the process name to "lein"
 if [ "$(uname)" == "Darwin" ]; then
 # Use setproctitle to set the process name on macOS
  if [ -n "$(command -v setproctitle)" ]; then
    setproctitle "lein"
 fi
fi

和:

# Set the process name to "lein"
 if [ "$(uname)" == "Linux" ]; then
   # Use prctl to set the process name on Linux
   if [ -n "$(command -v prctl)" ]; then
     prctl --set-name lein
    fi
 fi

我尝试了这些代码示例,但默认情况下没有安装,无论如何都无法正常工作。

Bash Shell Unix Leiningen

评论

0赞 Charles Duffy 8/30/2023
与您的问题无关,但是一个不可移植的扩展;POSIX标准化形式是[ a == b ][ a = b ]
2赞 Charles Duffy 8/30/2023
您可以使用的问题相关,但您需要确保 lein 脚本在启动 JVM 时执行此操作;当你自己启动 lein 脚本时,这样做是没有帮助的——这意味着你需要修补或替换包本身提供的包装器。exec -a argv0 cmd arg1 arg2 ...lein
0赞 Charles Duffy 8/30/2023
(看看 lein 的包装器,它是一团糟——有时创建一个 IT 会自行执行,在这种情况下,你需要将用法深入到调用包装器的包装器链中的最后一个调用中;总而言之,我个人的评估是,果汁不值得榨取,特别是如果你想保留预先存在的包装器功能,比如支持环境变量来选择 JVM 的能力使用)。TRAMPOLINE_FILE-aJAVA_CMD
0赞 Charles Duffy 8/30/2023
(类似地,如果你的 Linux 发行版的命令通过包装器的方式,你需要确保包装器使用正确的 argv0 在调用实际的 Java 可执行文件本身时传递,而不仅仅是在调用父级或祖父级时;所以请再次查看 re:这可能比它的价值要麻烦得多)。javaexec -a

答: 暂无答案