出于安全原因,我想在解析命令行参数后删除它们:
login.rb --user me --password wombats
我尝试过 ARGV.clear 和 $*.clear
对 ARGV 或 $* 的更改均不会反射(reflect)在 ps 中
最佳答案
您可以通过更改 $PROGRAM_NAME
变量来更改 Ruby 进程的名称(如 ps(1)
所示)。下面是一个有意循环的示例程序:
#!/usr/bin/env ruby
puts $PROGRAM_NAME
$PROGRAM_NAME = "a ruby process"
loop { }
当它像这样运行时:
$ ./loop.rb password
./loop.rb
它在 ps
中显示“一个 ruby 进程”:
$ 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
显示进程的方式。
关于ruby - ruby 中的命令行参数可以被删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15802102/