Come ottenere la riga di comando del processo UNIX?


8

È possibile prendere la riga di comando che è stata utilizzata per richiamare un processo su Mac OS X?


1
ps --pid $PID -o args=Questo è quello che uso, comunque ...
yardena,

2
L'equivalente Mac di quel comando è:ps -p <pid> -o args=
Nate

1
se "-o args =" tronca l'output, puoi provareps -p <pid> -o command=
Jose Alban il

Risposte:


11

ps axmostra la riga di comando di tutti i processi in esecuzione; puoi grep per il pid che desideri.


@ mark4o O semplicemente ps awux | cat, poiché ps -w non limiterà il numero di colonne da visualizzare quando l'output non è stdout, ad esempio quando viene reindirizzato a un altro comando.
jtimberman,

1
Perché questo succede ogni settimana? "Avviso: sintassi ps errata, forse un falso '-'? Vedere procps.sf.net/faq.html " e "Notare che" ps -aux "è distinto da" ps aux ". Gli standard POSIX e UNIX richiedono che" ps -aux "stampa tutti i processi di proprietà di un utente chiamato" x ", oltre a stampare tutti i processi che sarebbero selezionati dall'opzione -a. Se l'utente chiamato" x "non esiste, questo ps può interpretare il comando come "ps aux" invece e stampare un avvertimento. Questo comportamento ha lo scopo di favorire la transizione di vecchie sceneggiature e abitudini. È fragile, soggetto a modifiche e quindi non dovrebbe essere invocato. "
Ciao,

Non lo so, Hello71. Ho corretto la mia risposta di due anni per te.
Bkkbrad,

4

fa:

~$ ps ax | grep "ntp"
   57   ??  Ss     0:04.66 /usr/sbin/ntpd -c /private/etc/ntp.conf -n
 3104 s000  S+     0:00.00 grep ntp

fai quello di cui hai bisogno (cambia ntp nel programma che ti interessa)? Questo di solito mi dà gli argomenti della riga di comando dei processi in esecuzione (io uso per controllare cosa ha usato Launchd quando ad esempio esegue un demone di sistema).


2

cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'

Sebbene sia specifico di Linux, ottiene la riga di comando del processo numerata $PROCESSNUMBERdirettamente dal kernel (la /proc/$PROCESSNUMBER/cmdlineparte) e la rende leggibile inserendo ogni argomento su una riga separata traducendo (con tr -tokensostituzione) gli \ 0 in newline (\ n).

Questa riga funziona solo se inserisci un numero di processo reale di un processo in esecuzione (puoi trovarne uno eseguendo il comando ps -ef) nella parte $ PROCESSNUMBER!


3
Il poster originale chiedeva Mac OS X (che non è disponibile procfs)
Andre Holzner,

2
Oppurexargs -0 < /proc/PID/cmdline
Bash,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.