2011-09-19 6 views
7

Chciałbym przekazać informację zwrotną dotyczącą mojego programu pingerowego za pomocą wiersza poleceń i wyświetlić go za pomocą ps ax.Jak ustawić wartość linii poleceń przez Ruby, aby zobaczyć status przez PS?

Znalazłem SO q. Ale

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

Zaczynam skrypt poprzez ruby ./pinger

+0

Wątpię, byś mógł to zrobić bez modyfikowania samego Rubiego. –

+0

@Dave: Możesz przypisać '0 $', to jest odpowiednik Ruby w argumencie' argv [0] ', Ruby' ARGV' po prostu przechowuje argumenty. –

+0

Ah, interesujące. –

Odpowiedz

9

przypisać do $0 zamiast. Na przykład, jeśli zacznę irb i

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

a następnie w ciągu w irb:

>> $0 = 'pancakes' 

iz powrotem do innego terminalu:

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

można sprawdzić z tego małego skryptu jako dobrze:

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

Przeprowadź to, przeskocz na inny terminal, zrób ps | grep pancakes i powinieneś zobaczyć proces naleśników.

+0

Doskonały. Dziękuję Ci! –

+2

+1 za naleśniki. –

+1

@ rm-rf: Zmęczyłem się * foo *, więc przełączyłem się na [* naleśniki *] (http://www.youtube.com/watch?v=dJUvPZI3Cr4). Poza tym lubię naleśniki :) –

Powiązane problemy