1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Installer et configurer systemd sur Serveur Cloud
Ce guide explique comment installer et configurer systemd
sur un Serveur Cloud et présente les principales commandes utilisables.
⚠️ Pour de l'aide supplémentaire contactez un partenaire ou lancez gratuitement un appel d'offres — découvrez aussi le rôle de l'hébergeur.
Prérequis
- Suivre le guide d'installation
systemd
pour Serveur Cloud. - Consulter la documentation officielle pour prendre connaissance de l'ensemble des possibilités offertes par systemd
- Les fichiers "unit" devront être placés dans :
~/.config/systemd/user/ ( /home/clients/absolute-path-id/.config/systemd/user )
(en remplaçant absolute-path-id visible dans votre Manager) et les permissions doivent être réglées en 0644. - Le paramètre
--user
doit être indiqué dans chaque commande.
Principales commandes
Voici une liste non-exhaustives de commandes utilisables avec systemd
.
Forcer systemd
Ă lire Ă nouveau les unit files et Ă prendre en compte les modifications:
systemctl --user daemon-reload
Activation d'un service:
systemctl --user enable --now SERVICENAME.service
VĂ©rification de l'Ă©tat d'un service:
systemctl --user status SERVICENAME.service
Configuration de Node en tant que service avec systemd
Il sera nécessaire de créer un fichier "Unit" avec l'extension ".service", qu'il faudra enregistrer dans le répertoire:
~/.config/systemd/user/
Il est possible de réutiliser l'exemple ci-après en remplaçant les valeurs commençant par “{}”
[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
Actions supplémentaires avec un fichier Unit
systemctl --user daemon-reload
Démarrer le service (si celui-ci est déjà actif, rien ne se passe):
systemctl --user start [Nom du Unit]
ArrĂŞter le service (si celui-ci n'est pas actif, rien ne se passe):
systemctl --user stop [Nom du Unit]
Redémarrer le service (s'il ne tourne pas, il est lancé):
systemctl --user restart [Nom du Unit]
Obtenir des informations sur le service ; notamment:
- "Active" qui indique si le service tourne et depuis quand
- "CGroup" montre le groupe de processus que gère le service, ça permet de voir les processus actifs, avec leurs arguments et leur ID
En dessous de "CGroup" se trouvent d'Ă©ventuels logs (la sortie standard et erreur du processus):
systemctl --user status [Nom du Unit]
Activer le démarrage automatique du service au boot du serveur ; NB: ça ne démarre pas le service:
systemctl --user enable [Nom du Unit]
Désactiver le démarrage automatique du service au boot du serveur ; NB: ça n'arrête pas le service:
systemctl --user disable [Nom du Unit]
Configuration avec les entrées user:
[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