如何通过 Ruby 设置命令行值以通过 PS 查看状态?
Posted
技术标签:
【中文标题】如何通过 Ruby 设置命令行值以通过 PS 查看状态?【英文标题】:How to set command line value via Ruby to see status via 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。
【参考方案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。此外,我喜欢煎饼:)以上是关于如何通过 Ruby 设置命令行值以通过 PS 查看状态?的主要内容,如果未能解决你的问题,请参考以下文章
如何配置不同的 ALSA 默认值以通过一台设备捕获并通过另一台设备播放?