如何通过 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 查看状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Linux中查看所有正在运行的进程

进程查看-ps命令介绍

如何配置不同的 ALSA 默认值以通过一台设备捕获并通过另一台设备播放?

如何从通过 API 返回的 Task<IActionResult> 获取值以进行单元测试

如何查看linux 正在运行的进程

通过浏览器插件设置值以在 iframe 中形成