【问题标题】:How to set command line value via Ruby to see status via PS?如何通过 Ruby 设置命令行值以通过 PS 查看状态?
【发布时间】:2011-11-20 14:54:37
【问题描述】:

我想通过命令行为我的 pinger 程序提供反馈,并使用 ps ax 查看它。

我找到了SO q。但是

....
ARGV[0] = "Hello!" # does nothing

我正在通过ruby ./pinger启动脚本

【问题讨论】:

  • 我怀疑你可以在不修改 Ruby 本身的情况下做到这一点。
  • @Dave:您可以分配给$0,这是C 的argv[0] 的Ruby 等价物,Ruby 的ARGV 只包含参数。
  • @Dave:这个$0 的东西可能是inherited from Perl

标签: ruby command-line command-line-arguments argv


【解决方案1】:

改为分配给$0。例如,如果我启动 irb 并且

$ ps | egrep 'irb|pancakes'
 3119 ttys000    0:01.02 irb 
 3131 ttys001    0:00.00 egrep irb|pancakes

然后在irb:

>> $0 = 'pancakes'

然后返回另一个终端:

$ ps | egrep 'irb|pancakes'
 3119 ttys000    0:01.07 pancakes 
 3135 ttys001    0:00.00 egrep irb|pancakes

您也可以使用这个小脚本进行检查:

#!/usr/bin/env ruby
$0 = 'pancakes'
sleep 10

运行它,跳转到另一个终端,执行ps | grep pancakes,你应该会看到一个煎饼进程。

【讨论】:

  • @rm-rf:我厌倦了foo,所以我切换到pancakes。此外,我喜欢煎饼:)
猜你喜欢
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-19
  • 2016-06-03
相关资源
最近更新 更多