Ich greife auf einen Server zu, auf dem CentOS (Linux Distribution) mit einer SSH-Verbindung ausgeführt wird. Da ich nicht immer eingeloggt bleiben kann, verwende ich "Nohup [Befehl] &", um meine Programme auszuführen.
Ich konnte keine Liste aller Programme finden, die ich mit Nohup gestartet habe. "jobs" klappt erst bevor ich mich auslogge. Wenn ich mich danach erneut anmelde, zeigt mir der Befehl jobs nichts an, aber ich kann in meinen Protokolldateien erkennen, dass meine Programme noch ausgeführt werden.
Gibt es eine Möglichkeit, eine Liste aller Programme zu erhalten, die ich mit "Nohup" gestartet habe?
Als ich anfing mit $ Nohup storm dev-zookeper
,
METHODE1: mit jobs
,
[email protected]:/home/vmfest# jobs -l
[1]+ 11129 Running Nohup ~/bin/storm/bin/storm dev-zookeeper &
METHODE2:mit dem Befehl ps
.
$ ps xw
PID TTY STAT TIME COMMAND
1031 tty1 Ss+ 0:00 /sbin/getty -8 38400 tty1
10582 ? S 0:01 [kworker/0:0]
10826 ? Sl 0:18 Java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ? Ss 0:00 sshd: vmfest [priv]
TTY-Spalte mit ?
=> Nohup
laufende Programme.
Beschreibung
Referenz
$ man ps
# dann suche /PROCESS STATE CODES
Anstelle von Nohup
sollten Sie screen
verwenden. Es wird das gleiche Ergebnis erzielt - Ihre Befehle werden "getrennt" ausgeführt. Sie können jedoch die Bildschirmsitzungen fortsetzen und zu ihrem "verborgenen" Terminal zurückkehren, um die letzten Fortschritte in diesem Terminal zu sehen.
screen
hat viele Optionen. Am häufigsten benutze ich diese:
So starten Sie die erste Bildschirmsitzung oder übernehmen die letzte getrennte Sitzung:
screen -Rd
So trennen Sie sich von der aktuellen Sitzung: Ctrl+ACtrl+D
Sie können auch mehrere Bildschirme starten - lesen Sie die Dokumentation.
Wenn Sie eine Standardausgabe-Umleitung zu "Nohup.out" haben, sehen Sie nur, wer diese Datei verwendet
lsof | grep Nohup.out
Sie können eine Liste der Befehle, die mit Nohup
beginnen, nicht genau anzeigen, aber Sie können sie zusammen mit Ihren anderen Prozessen anzeigen, indem Sie den Befehl ps x
Verwenden. Befehle, die mit Nohup
beginnen, werden in der TTY-Spalte mit einem Fragezeichen versehen.
Sie können auch einfach den Befehl top verwenden und Ihre Benutzer-ID zeigt die ausgeführten Jobs und deren Zeiten an.
$ top
(Dies zeigt alle laufenden Jobs an)
$ top -U [user ID]
(Dies zeigt Jobs an, die spezifisch für die Benutzer-ID sind.)