it-swarm.com.de

So erhalten Sie eine Liste der mit nohup ausgeführten Programme

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?

53
Nils De Winter

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

  • TTY-Spalte = das mit dem Prozess verknüpfte Terminal
  • Spalte STAT = Status eines Prozesses
    • S = unterbrechbarer Schlaf (Warten auf den Abschluss eines Ereignisses)
    • l = ist multithreaded (mit CLONE_THREAD, wie es NPTL-pthreads tun)

Referenz

$ man ps # dann suche /PROCESS STATE CODES

84
prayagupd

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.

23
mvp

Wenn Sie eine Standardausgabe-Umleitung zu "Nohup.out" haben, sehen Sie nur, wer diese Datei verwendet

lsof | grep Nohup.out
13
Victor Melnikov

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.

4
Old Pro

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.)

3
Jcrow06