Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OSx中更改Ruby进程名_Ruby_Process_Naming - Fatal编程技术网

在OSx中更改Ruby进程名

在OSx中更改Ruby进程名,ruby,process,naming,Ruby,Process,Naming,我试图给我的Ruby程序起一个不同的名字。我在OSx上用Ruby版本2.1.2-p95运行这个。我正在查看活动监视器,我相信它使用top,但我不是100%确定 我尝试了$0=“我的流程名称”,$0=“我的流程名称\0”,$PROGRAM\u name=“我的流程名称”,$0=“我的流程名称”。这些似乎都不管用 我也尝试过: require "fiddle" def set_process_name(name) Fiddle::Function.new( DL::Handl

我试图给我的Ruby程序起一个不同的名字。我在OSx上用Ruby版本2.1.2-p95运行这个。我正在查看活动监视器,我相信它使用top,但我不是100%确定

我尝试了
$0=“我的流程名称”
$0=“我的流程名称\0”
$PROGRAM\u name=“我的流程名称”
$0=“我的流程名称”
。这些似乎都不管用

我也尝试过:

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方式


没有满意答案的类似问题:

我还没有找到跨平台的方法。最接近的方法是使用
Process.setproctitle
,但在OSX上它只在命令行上工作,而不是在活动监视器应用程序中


对于OSX,您需要将脚本捆绑到应用程序和文件中

是您要更改的top/activity monitor输出还是ps的输出?我希望它在activity monitor中更改,因为这是大多数mac用户将要查看的内容。太糟糕了,Process.setproctitle似乎只执行psYeah,我自己发现了这一点。不幸的是,我已经为此挣扎了一段时间。你找到解决办法了吗?我在Thoughtbot和