GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Führen Sie einen persistenten Prozess über ssh aus

Wenn Sie eine SSH-Verbindung zu einer Linux-Distribution mit systemd herstellen, können Sie systemd-run verwenden um einen Prozess im Hintergrund zu starten (in den Begriffen von systemd "ein vorübergehender Dienst"). Angenommen, Sie möchten im Hintergrund etwas pingen:

systemd-run --unit=pinger ping 10.8.178.3

Der Vorteil, den Sie mit systemd erhalten, gegenüber dem einfachen Ausführen eines Prozesses mit nohup ist, dass systemd den Prozess und seine untergeordneten Prozesse verfolgt, Protokolle führt, sich den Exit-Code merkt und es Ihnen ermöglicht, den Prozess und alle seine untergeordneten Prozesse sauber zu beenden. Beispiele:

Sehen Sie sich den Status und die letzten Zeilen der Ausgabe an:

systemctl status pinger

Ausgabe streamen:

journalctl -xfu pinger

Töten:

systemctl kill pinger

Als Alternative zu nohup , könnten Sie Ihre Remote-Anwendung in einem Terminal-Multiplexer wie GNU screen ausführen oder tmux .

Die Verwendung dieser Tools macht es einfach, sich von einem anderen Host aus wieder mit einer Sitzung zu verbinden, was bedeutet, dass Sie einen langen Build oder Download abbrechen können, bevor Sie die Arbeit verlassen, und den Status überprüfen, wenn Sie nach Hause kommen. Zum Beispiel. Ich finde dies besonders nützlich, wenn ich Entwicklungsarbeit auf sehr abgelegenen Servern (in einem anderen Land) mit unzuverlässiger Verbindung zwischen mir und ihnen mache. Wenn die Verbindung unterbrochen wird, kann ich mich einfach wieder verbinden und weitermachen, ohne irgendeinen Zustand zu verlieren.


Linux
  1. Umleiten einer Ausgabe einer Subshell zu einem Prozess?

  2. Wie man über eine Zwischenmaschine scp??

  3. Führen Sie den Prozess mit Echtzeitausgabe in PHP aus

  4. Führen Sie das PHP-Skript als Daemon-Prozess aus

  5. Wie führe ich automatisch Befehle bei der SSH-Anmeldung aus?

So führen Sie Container als Systemd-Dienst mit Podman aus

Ausführen von Befehlen auf Remote-Linux-Systemen über SSH

Entrümpeln des Prozessmanagements mit ps oder systemd

So führen Sie SSH zum Server über Linux

So führen Sie den Rsync-Prozess im Hintergrund aus

Kann ein Prozess unabhängig von einer Shell ausgeführt werden?