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.