Base di conoscenze
1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Installare e configurare systemd su un Server Cloud
Questa guida spiega come installare e configurare systemd su un Server Cloud e presenta i principali comandi utilizzabili.
Prerequisiti
- Seguire la guida all'installazione di
systemdper Cloud Server. - Consultare la documentazione ufficiale per conoscere tutte le funzionalità offerte da systemd.
- I file "unit" devono essere inseriti in:
~/.config/systemd/user/ ( /home/clients/absolute-path-id/.config/systemd/user )(sostituendo absolute-path-id, che è visibile nel vostro pannello di controllo) e i permessi devono essere impostati su 0644. - Il parametro
--userdeve essere specificato in ogni comando.
Comandi principali
Di seguito è riportato un elenco non esaustivo dei comandi utilizzabili con systemd.
Forzare systemd a rileggere i file di unità e a tenere conto delle modifiche:
systemctl --user daemon-reloadAttivazione di un servizio:
systemctl --user enable --now SERVICENAME.serviceVerifica dello stato di un servizio:
systemctl --user status SERVICENAME.service
Configurazione di Node come servizio con systemd
Sarà necessario creare un file "Unit" con 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
Altre azioni con un file Unit
systemctl --user daemon-reloadAvvia il servizio (se è 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]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, permettendo di visualizzare i processi attivi, con i relativi argomenti e ID.
Sotto "CGroup" sono presenti eventuali log (l'output standard e di errore del processo):
systemctl --user status [Nom du Unit]Abilita l'avvio automatico del servizio all'avvio del server; NB: non avvia il servizio:
systemctl --user enable [Nom du Unit]Disabilita 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.targetLink a questa FAQ: https://faq.infomaniak.com/2571
Questa FAQ è stata utile?