1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Installa e configura systemd su Managed Cloud Server
Questa guida spiega come installare e configurare systemd su un Server Cloud gestito e presenta i comandi principali utilizzabili.
Requisiti
- Seguire la guida all'installazione di systemd per il Server Cloud
- Consultare la documentazione ufficiale per conoscere tutte le possibilità offerte da systemd
- I file "unit" devono essere posizionati in:
~/.config/systemd/user/ ( /home/clients/absolute-path-id/.config/systemd/user )
(sostituendo absolute-path-id visibile nel tuo Manager) e i permessi devono essere impostati su 0644 - Il parametro
--user
deve essere specificato in ogni comando
Comandi Principali
Ecco un elenco non esaustivo di comandi utilizzabili con systemd.
Forzare systemd a rileggere i file unit e considerare le modifiche:
systemctl --user daemon-reload
Attivazione di un servizio:
systemctl --user enable --now NOME_SERVIZIO.service
Verifica dello stato di un servizio:
systemctl --user status NOME_SERVIZIO.service
Configurazione di Node come servizio con systemd
Sarà necessario creare un file "Unit" con l'estensione ".service", che dovrà essere salvato nella directory:
~/.config/systemd/user/
È possibile riutilizzare l'esempio di seguito, sostituendo i valori che iniziano con "{}"
[Unit]
Descrizione={Nome del servizio} # Specificare qui un nome per il servizio. Questo è obbligatorio ma non influisce sul suo funzionamento
[Service]
Riavvio=always
Ambiente=NODE_VERSION={versione desiderata} # Specificare qui la versione di Node da utilizzare. Assicurarsi che sia installata precedentemente con "nvm install {versione desiderata}"
DirectoryLavoro=%h/{directory del progetto Node} # %h corrisponde alla radice dell'hosting
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec {comando di avvio dello script di Node}" # Questo comando dipende dal progetto. Ad esempio, "npm run start", "npm run serve" o "node server.js" sono comuni
[Install]
DesideratoDa=default.target
Azioni aggiuntive con un file Unit
systemctl --user daemon-reload
Avviare il servizio (se è già attivo, non succederà nulla):
systemctl --user start [Nome dell'Unit]
Arrestare il servizio (se non è attivo, non succederà nulla):
systemctl --user stop [Nome dell'Unit]
Riavviare il servizio (se non è in esecuzione, verrà avviato):
systemctl --user restart [Nome dell'Unit]
Ottenere informazioni sul servizio; in particolare:
- "Attivo", che indica se il servizio è in esecuzione e da quanto tempo
- "CGroup" mostra il gruppo di processi gestito dal servizio, consentendo di visualizzare i processi attivi, con i loro argomenti e il loro ID
Sotto "CGroup" ci sono eventuali registri (l'output standard e gli errori del processo):
systemctl --user status [Nome dell'Unit]
Attivare l'avvio automatico del servizio all'avvio del server; Nota: ciò non avvia il servizio:
systemctl --user enable [Nome dell'Unit]
Disattivare l'avvio automatico del servizio all'avvio del server; Nota: ciò non arresta il servizio:
systemctl --user disable [Nome dell'Unit]
Configurazione con input utente:
[Unit]
Descrizione="nome servizio"
[Service]
Riavvio=always
Ambiente=NODE_VERSION=16.17
DirectoryLavoro=%h/sites/"nome-cartella-sito"/
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec npm run start"
[Install]
DesideratoDa=default.target