【发布时间】:2011-09-02 18:06:48
【问题描述】:
我正在使用delayed_jobs 运行Ruby 类,Ruby 如何检测正在运行它的进程的名称(命令)?
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby delayed-job irb
我正在使用delayed_jobs 运行Ruby 类,Ruby 如何检测正在运行它的进程的名称(命令)?
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails ruby delayed-job irb
您可以使用$0 确定文件的名称。你甚至可以像$0 = 'foo'Dave Thomas's blog post一样使用它来设置进程名称。如果你想获取命令行参数,你想看看ARGV。
【讨论】:
$0 变量的别名是$PROGRAM_NAME
$0 包含正在执行的脚本的名称。 (可能是可分配的,所以它可能会出错)
【讨论】:
--replace-progname 开关为此目的操纵 $0,因此正在运行的脚本中的 $0 == __FILE__ 魔法咒语仍然有效。
如果您使用的是 Unix 系统,您可以从 ruby 执行脚本来确定如下过程:
`ps aux | grep ruby`
然后使用 $?获取进程
【讨论】: