[LINUX] Beachten Sie, dass der Prozess auch nach dem Abmelden bei SSH bestehen bleibt

Einführung

Dies ist eine Notiz darüber, wie der Prozess nach dem Abmelden bei der Verbindung mit SSH beibehalten wird. Grundsätzlich können Sie tun, was Sie wollen.

$Inhalt des Befehls nohup> out.log &

Beispiel

$ nohup echo "very very heavy task" > out.log &

Dadurch wird eine Datei "out.log" im Kalenderverzeichnis erstellt und die Ausgabe gespeichert.

out.log


very very heavy task

Funktionalisierung

Das Haupt ist von hier. Der vorherige Befehl ist etwas lang, registrieren Sie ihn also als Funktion.

Die Shell, die ich verwende, ist zsh. Fügen Sie also Folgendes zu ~ / .zshrc hinzu. Fügen Sie es für bash zu ~ / .bashrc hinzu.

.zshrc


background () {
    nohup ${@:1} > out.log &
}

Speichern Sie den Inhalt und übernehmen Sie Ihre Änderungen.

$ source ~/.zshrc

Sie können es jetzt im Hintergrund ausführen, indem Sie dem Prozess, den Sie ausführen möchten, einfach "Hintergrund" voranstellen.

$ background echo "very very heavy task"

Es spielt keine Rolle, wie viele Argumente Sie haben.

$ background python takes_many_args.py foo bar --arg3 1234 --arg4 abcd

Recommended Posts

Beachten Sie, dass der Prozess auch nach dem Abmelden bei SSH bestehen bleibt
Problem, dass selbst wenn Pool.close () mit der Mehrfachverarbeitung von Python ausgeführt wird, der Prozess angehalten bleibt und der Speicher stetig zunimmt.
Töte den Prozess mit sudo kill -9