GNU/Linux >> Linux Esercitazione >  >> Linux

Esegui un processo persistente tramite ssh

Se stai usando SSH su una distribuzione Linux che ha systemd, puoi usare systemd-run per avviare un processo in background (nei termini di systemd, "un servizio transitorio"). Ad esempio, supponendo che tu voglia eseguire il ping di qualcosa in background:

systemd-run --unit=pinger ping 10.8.178.3

Il vantaggio che otterrai con systemd rispetto alla semplice esecuzione di un processo con nohup è che systemd terrà traccia del processo e dei suoi figli, manterrà i registri, ricorderà il codice di uscita e ti consentirà di terminare in modo pulito il processo e tutti i suoi figli. Esempi:

Guarda lo stato e le ultime righe dell'output:

systemctl status pinger

Trasmetti l'output:

journalctl -xfu pinger

Uccidi:

systemctl kill pinger

In alternativa a nohup , potresti eseguire la tua applicazione remota all'interno di un multiplexer terminale, come GNU screen o tmux .

L'utilizzo di questi strumenti semplifica la riconnessione a una sessione da un altro host, il che significa che puoi avviare una build lunga o scaricarla prima di lasciare il lavoro e controllarne lo stato quando torni a casa. Per esempio. Lo trovo particolarmente utile quando eseguo lavori di sviluppo su server molto remoti (in un paese diverso) con connettività inaffidabile tra me e loro, se la connessione si interrompe, posso semplicemente riconnettermi e continuare senza perdere alcuno stato.


Linux
  1. Eseguire vere istanze di processo multiple di Gnome-terminal?

  2. Ssh:come avviare un processo durante una sessione Ssh dopo che la sessione è terminata??

  3. Unità Systemd Run in caso di successo di un altro?

  4. Impossibile eseguire applicazioni X tramite SSH in Linux

  5. Esegui processo con output in tempo reale in PHP

Come eseguire container come servizio Systemd con Podman

Esegui comandi su sistemi Linux remoti tramite SSH

Decluttering la gestione dei processi con ps o systemd

Come eseguire l'SSH sul server tramite Linux

Come uscire da SSH di vagabondo nel terminale

Rsync file tramite host intermedio