Est-il possible de récupérer la ligne de commande qui a été utilisée pour appeler un processus sur Mac OS X?
ps -p <pid> -o args=
ps -p <pid> -o command=
Est-il possible de récupérer la ligne de commande qui a été utilisée pour appeler un processus sur Mac OS X?
ps -p <pid> -o args=
ps -p <pid> -o command=
Réponses:
ps ax
vous montre la ligne de commande de tous les processus en cours d'exécution; vous pouvez chercher le pid que vous voulez.
Est-ce que:
~$ 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
faire ce dont vous avez besoin (changer ntp pour le programme qui vous intéresse)? Cela me donne généralement les arguments en ligne de commande des processus en cours d'exécution (j'utilise pour vérifier ce que Launchd a utilisé lors de l'exécution d'un démon système par exemple).
cat /proc/$PROCESSNUMBER/cmdline | tr '\0' '\n'
Bien qu'il soit spécifique à Linux, il obtient la ligne de commande du processus numéroté $PROCESSNUMBER
directement à partir du noyau (la /proc/$PROCESSNUMBER/cmdline
partie) et le rend lisible en plaçant chaque argument sur une ligne distincte en traduisant (avec tr -token
replace) les \ 0 en nouvelles lignes (\ n).
Cette ligne ne fonctionne que si vous mettez un vrai numéro de processus d'un processus en cours (vous pouvez en trouver un en exécutant la commande ps -ef
) dans la partie $ PROCESSNUMBER!
procfs
)
xargs -0 < /proc/PID/cmdline
ps --pid $PID -o args=
C'est ce que j'utilise, de toute façon ...