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