出于安全原因,我想在解析命令行参数后删除它们:
login.rb --user me --password wombats
我试过 ARGV.clear 和 $*.clear
对 ARGV 或 $* 的更改都不会反映在 ps 中
ps(1)
您可以通过更改$PROGRAM_NAME
变量来更改Ruby 进程的名称(如 所示)。这是一个故意循环的示例程序,例如:
#!/usr/bin/env ruby
puts $PROGRAM_NAME
$PROGRAM_NAME = "a ruby process"
loop { }
当它像这样运行时:
$ ./loop.rb password
./loop.rb
它在以下位置显示“红宝石进程” ps
:
$ ps aux | grep ruby
stuart 85292 98.9 0.1 2439468 4340 s004 R+ 8:43PM 0:02.96 a ruby process
stuart 85341 0.0 0.0 2432768 600 s011 S+ 8:43PM 0:00.00 grep --color ruby
因此,您可以使用该$PROGRAM_NAME
变量来准确更改流程的显示方式ps
。