ps -o args= -p "$pid"
Hier erfahren Sie, welche Argumentliste für den letzten Befehl angegeben wurde, den der Prozess ausgeführt hat (oder, falls er keinen ausgeführt hat, den, den sein übergeordneter Befehl ausgeführt hat ...), sofern der Prozess seine Argumentliste danach nicht überschrieben hat.
ps
zeigt an, dass die Arg-Liste mit Leerzeichen verkettet ist und bis zu einem Grenzwert, den Sie möglicherweise bei einigen ps
Implementierungen durch Hinzufügen einiger -w
Optionen erhöhen können. Unter Linux sehen Sie die durch NUL-Bytes getrennte Arglist in /proc/$pid/cmdline
.
lsof +fg -ap "$pid" -d 0-2
Hier erfahren Sie, auf was die Dateideskriptoren stdin, stdout und stderr des Prozesses verweisen und in welchem Modus sie geöffnet wurden (wie W,AP
beim Nur-Schreiben mit Anhängen, als ob eine >>
Umleitung in einer POSIX-Shell verwendet würde).
lsof
, um zu erkennen, dass der Prozess inmyapp.log
readlink /proc/$pid/fd/1
Sie können den
ps
Befehl verwenden und die PID angeben, die mit dem-p
Schalter untersucht werden soll. Verwenden Sie den-f
Schalter, um eine vollständige Auflistung oder-l
eine detailliertere lange Auflistung zu erhalten.Als Beispiel für die Ausgabe:
Dies gibt jedoch eine Kopfzeile aus, die Sie möglicherweise nicht in Ihrer Protokolldatei haben möchten. Sie können dies mithilfe der
-h
Option kürzen, wenn Ihre PID 1234 war:Beachten Sie, dass ich die Ausgabe umgeleitet habe
>>
, um sie an Ihre Protokolldatei anzuhängen.quelle
tail -n+1
(erfordert GNU, aber Q war Linux / Ubuntu). Oder vermeiden Sie das Problem mitps -h{f,l}p 1234
(auch GNU).tail -n1
funktioniert definitiv unter Ubuntu, warum ist das+
nötig?tail -n+2
welche alle Zeilen außer der ersten zeigt.tail -n1
zeigt nur die letzte Zeile. Vergleichen Sie:seq 1 10 | tail -n+2
und so weiter.-h
da es eine unnötige Pipe und zusätzlichen Prozess vermeidet.Mit
ps -f
können Sie die Argumentliste überprüfen und sie auch in eine beliebige Datei umleiten.Also, in diesem Fall einfach verwenden
ps -ef | grep 1234 > myapp.log
Bitte überprüfen Sie diese ps Manpage .
quelle
ps -ef | grep 'foo' | grep -v grep
grep -v
benutze ich diesen Trick:grep '123[4]'