Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set command line value via Ruby to see status via PS?

I'd like to provide feedback for my pinger program via the command line and view it using ps ax.

I found a SO q. But

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

I'm starting the script via ruby ./pinger

like image 973
Larry K Avatar asked Sep 19 '11 21:09

Larry K


1 Answers

Assign to $0 instead. For example, if I start irb and

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

and then over in irb:

>> $0 = 'pancakes'

and back to the other terminal:

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

You can check with this tiny script as well:

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

Run that, jump to another terminal, do a ps | grep pancakes, and you should see a pancakes process.

like image 100
mu is too short Avatar answered Nov 15 '22 08:11

mu is too short