Base di conoscenze

1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!

Installare e configurare systemd su Server Cloud

Questa guida spiega come installare e configurare systemd su un Server Cloud e presenta i principali comandi utilizzabili.

 

Prerequisiti

  • Seguire la guida di installazione systemd per 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 vostro Manager) e i permessi devono essere impostati su 0644.
  • Il parametro --user deve essere indicato in ogni comando.

 

Principali comandi

Ecco un elenco non esaustivo di comandi utilizzabili con systemd.

Forzare systemd a rileggere i file unit e a prendere in considerazione le modifiche:

systemctl --user daemon-reload

Attivazione di un servizio:

systemctl --user enable --now SERVICENAME.service

Verifica dello stato di un servizio:

systemctl --user status SERVICENAME.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 seguente sostituendo i valori che iniziano con {} :

[Unit]
Description={Le nom du service} # Spécifier ici un nom du service. Celui-ci est obligatoire mais n'a pas d'impact sur le fonctionnement
[Service]
Restart=always
Environment=NODE_VERSION={la version souhaitée} # Spécifier ici la version de Node à utiliser. S'assurer qu'elle soit installée au préalable avec "nvm install {la version souhaitée}"
WorkingDirectory=%h/{repertoire du projet Node} # %h correspond à la racine de l'hébergement
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec {commande de lancement du script node}" # Cette commande dépend du projet. Par exemple, "npm run start", "npm run serve" ou encore "node server.js" sont courants
[Install]
WantedBy=default.target

 

Azioni aggiuntive con un file Unit

systemctl --user daemon-reload

Avviare il servizio (se il servizio è già attivo, non succede nulla):

systemctl --user start [Nom du Unit]

Arrestare il servizio (se il servizio non è attivo, non succede nulla):

systemctl --user stop [Nom du Unit]

Riavviare il servizio (se non è in esecuzione, viene avviato):

systemctl --user restart [Nom du Unit]

Ottieni informazioni sul servizio; in particolare:

  • "Active" che indica se il servizio è in esecuzione e da quanto tempo
  • "CGroup" mostra il gruppo di processi gestito dal servizio, permette di vedere i processi attivi, con i loro argomenti e il loro ID

Sotto "CGroup" si trovano eventuali log (l'output standard e l'errore del processo):

systemctl --user status [Nom du Unit]

Attivare l'avvio automatico del servizio all'avvio del server; NB: non avvia il servizio:

systemctl --user enable [Nom du Unit]

Disattivare l'avvio automatico del servizio all'avvio del server; NB: non arresta il servizio:

systemctl --user disable [Nom du Unit]

 

Configurazione con le voci utente:

[Unit]
Description="nom service"
[Service]
Restart=always
Environment=NODE_VERSION=16.17
WorkingDirectory=%h/sites/"nom-repertoire-site"/
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec npm run start"
[Install]
WantedBy=default.target

 


Questa FAQ è stata utile?