GNU/Linux >> Znalost Linux >  >> Linux

Spusťte trvalý proces přes ssh

Pokud používáte SSH na linuxové distro, které má systemd, můžete použít systemd-run ke spuštění procesu na pozadí (podle systemd „přechodná služba“). Za předpokladu, že chcete například pingnout něco na pozadí:

systemd-run --unit=pinger ping 10.8.178.3

Výhoda, kterou získáte se systemd oproti pouhému spuštění procesu s nohup je, že systemd bude sledovat proces a jeho potomky, bude uchovávat protokoly, zapamatovat si výstupní kód a umožní vám čistě zabít proces a všechny jeho potomky. Příklady:

Podívejte se na stav a poslední řádky výstupu:

systemctl status pinger

Streamujte výstup:

journalctl -xfu pinger

Zabít:

systemctl kill pinger

Jako alternativa k nohup , můžete spustit vzdálenou aplikaci v terminálovém multiplexoru, jako je GNU screen nebo tmux .

Použití těchto nástrojů usnadňuje opětovné připojení k relaci z jiného hostitele, což znamená, že můžete spustit dlouhou sestavu nebo stahování, než odejdete z práce, a zkontrolovat její stav, až se vrátíte domů. Například. Považuji to za užitečné zejména při vývojové práci na serverech, které jsou velmi vzdálené (v jiné zemi) s nespolehlivou konektivitou mezi mnou a nimi. Pokud spojení přestane fungovat, mohu se jednoduše znovu připojit a pokračovat bez ztráty stavu.


Linux
  1. Spustit skutečné vícenásobné procesní instance terminálu Gnome?

  2. Ssh – Jak vytvořit proces, který zahájím během relace Ssh, která běží po skončení relace?

  3. Nelze spustit X aplikací přes SSH v Linuxu

  1. Jak spustit proces Rsync na pozadí

  2. Spusťte proces s výstupem v reálném čase v PHP

  3. Může proces běžet bez ohledu na jakýkoli shell?

  1. Ssh – Jak spustit skript ihned po připojení přes Ssh?

  2. Přesměrování výstupu subshell do procesu?

  3. Jak zjistit, zda jsem přihlášen přes SSH?