我想更改linux/unix top命令中显示的ruby进程的名称.我试过了
$0='miname'
方法,但它只适用于ps命令,并在顶部,该过程不断显示为"红宝石"
Dave Thomas 在rails中做了一篇有趣的帖子.关于实际进程名称更改代码没有特定的rails.他使用这种$0='name'
方法.当我跟着他的脚步名称改为中ps
和top
.
在帖子中,c
如果您的top版本默认情况下没有显示该命令的短版本,他建议使用键盘命令.
Ruby 2.1 为此目的引入了一种Process.setproctitle
方法:
Process.setproctitle("My new title")
我认为Ruby没有内置设施(setproctitle(3)
).您可能应该尝试查看ruby-ffi并创建接口setproctitle(3)
.
编辑:我知道你有答案,但我想向你展示一些使用ffi的代码:
require "ffi" # module LibC extend FFI::Library attach_function :setproctitle, [:string, :varargs], :void end LibC.setproctitle("Ruby: executing %s", :string, $0)
因为setproctitle(3)
不存在而无法在OS X上运行,适用于FreeBSD.