GNU/Linux >> Linux Esercitazione >  >> Linux

Come faccio a far funzionare in background il mio server web Golang?

Prima le cose semplici/utilizzabili

Se vuoi uno script di avvio senza troppi sforzi (ad esempio gestire il processo, semplicemente farlo gestire dal sistema), puoi creare un systemd servizio. Vedi la risposta di Greg per una descrizione dettagliata su come farlo. Successivamente puoi avviare il servizio con

systemctl start myserver

In precedenza avrei consigliato di provare xinetd o qualcosa di simile per una maggiore granularità riguardo alla gestione delle risorse e dei permessi, ma systemd lo copre già.

Utilizzo della shell

Potresti iniziare il tuo processo in questo modo:

nohup ./myexecutable &

Il & dice alla shell di avviare il comando in background, mantenendolo nell'elenco dei lavori. Su alcune shell, il lavoro viene interrotto se la shell madre esce usando il segnale HANGUP. Per evitare ciò, puoi lanciare il tuo comando usando il nohup comando, che scarta il segnale HANGUP.

Tuttavia, questo non funziona se il processo chiamato riconnette il segnale HANGUP.

Per essere veramente sicuri, è necessario rimuovere il processo dall'elenco dei lavori della shell. Per due shell ben note, ciò può essere ottenuto come segue:

bash:

./myexecutable &
disown <pid>

zsh:

./myexecutable &!

Uccidi il tuo lavoro in background

Normalmente, la shell stampa il PID del processo, che poi può essere ucciso usando il kill comando, per arrestare il server. Se la tua shell non stampa il PID, puoi ottenerlo usando

echo $!

subito dopo l'esecuzione. Questo stampa il PID del processo biforcuto.


Potresti usare Supervisord per gestire il tuo processo.


Linux
  1. Come avviare il comando Linux in background e scollegare il processo nel terminale

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

  3. Linux:come ottenere l'ora dell'orologio da parete di un processo in esecuzione?

  4. Come ottenere l'ora di inizio di un processo Linux di lunga durata?

  5. come avviare il server Tomcat in Linux?

Come ottenere le migliori prestazioni dal server Nginx

Come eseguire diverse versioni di PHP sullo stesso server

Come installare la piattaforma di analisi web Matomo su Ubuntu Server 20.04

Come inviare processi in background su Linux

Come ottenere l'ID del processo per terminare un processo nohup?

Come eseguire un comando in background con un ritardo?