2011-09-19 19 views
7

Me gustaría proporcionar retroalimentación para mi programa de pinger a través de la línea de comando y verlo usando ps ax.¿Cómo establecer el valor de línea de comando a través de Ruby para ver el estado a través de PS?

Encontré un SO q. Pero

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

estoy empezando la secuencia de comandos a través de ruby ./pinger

+0

Dudo que puedas hacer eso sin modificar a Ruby. –

+0

@Dave: Puede asignar '$ 0', ese es el equivalente Ruby de' argv [0] 'de C, el' ARGV' de Ruby solo contiene los argumentos. –

+0

Ah, interesante. –

Respuesta

9

Asignar a $0 lugar. Por ejemplo, si comienzo irb y

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

y luego otra vez en irb:

>> $0 = 'pancakes' 

y de vuelta al otro terminal:

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

se puede comprobar con este pequeño script como bien:

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

Ejecutar eso, saltar a otra terminal, hacer un ps | grep pancakes, y debería ver un proceso de panqueques.

+0

Excelente. ¡Gracias! –

+2

+1 para panqueques. –

+1

@ rm-rf: Me cansé de * foo *, así que cambié a [* pancakes *] (http://www.youtube.com/watch?v=dJUvPZI3Cr4). Además, me gustan los panqueques :) –

Cuestiones relacionadas