我试图给我的Ruby程序一个不同的名字。我在OSx上使用Ruby版本2.1.2-p95运行它。我正在查看活动监视器,我相信它使用顶级,但我不是百分百肯定。
我尝试了$0 = "My process name"
,$0 = "My process name\0"
,$PROGRAM_NAME = "My process name"
,$0 = "my_process_name"
。似乎都没有做到这一点。
我也尝试过:
require "fiddle"
def set_process_name(name)
Fiddle::Function.new(
DL::Handle["prctl"], [
Fiddle::TYPE_INT, Fiddle::TYPE_VOIDP,
Fiddle::TYPE_LONG, Fiddle::TYPE_LONG,
Fiddle::TYPE_LONG
], Fiddle::TYPE_INT
).call(15, name, 0, 0, 0)
end
set_process_name("My process name")
我希望有一种跨平台的方式来做到这一点,但我现在主要采用OSx方式。
类似的问题没有令人满意的答案: Change the ruby process name in top
答案 0 :(得分:2)
我还没有找到一种跨平台的方式来做到这一点。最接近的是使用Process.setproctitle
但在OSX上它只能在命令行上运行,而不是在Activity Monitor应用程序中。
对于OSX,您需要在App和set the process name on the Info.plist文件中捆绑脚本