【发布时间】:2014-07-30 10:19:11
【问题描述】:
我正在尝试给我的 Ruby 程序起一个不同的名称。我在 OSx 上使用 Ruby 版本 2.1.2-p95 运行它。我正在查看我认为使用 top 的 Activity Monitor,但我不是 100% 确定。
我试过$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
【问题讨论】:
-
您要更改的具体是顶级/活动监视器输出还是 ps 的输出?
-
我希望它在活动监视器中进行更改,因为这是大多数 Mac 用户会查看的地方。
-
太糟糕了,Process.setproctitle 似乎只做ps
-
是的,我自己发现了。不幸的是,我一直在为此苦苦挣扎。
-
您找到解决方案了吗?我在 Thoughtbot 的 gitsh 和 Ruby issue tracker 上发现了一些可能相关的问题