1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Installer systemd sur Serveur Cloud managé
Ce guide explique comment installer systemd sur un Serveur Cloud managé et présente les principales commandes utilisables.
Prérequis
- Installer Systemd sur un 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 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
systemctl --user start [Nom du Unit]
=> démarrer le service (si celui-ci est déjà actif, rien ne se passe)systemctl --user stop [Nom du Unit]
=> arrĂŞter le service (si celui-ci n'est pas actif, rien ne se passe)systemctl --user restart [Nom du Unit]
=> redémarrer le service (s'il ne tourne pas, il est lancé)systemctl --user status [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 enable [Nom du Unit]
=> Activer le démarrage automatique du service au boot du serveur ; NB: ça ne démarre pas le servicesystemctl --user disable [Nom du Unit]
=> Désactiver le démarrage automatique du service au boot du serveur ; NB: ça n'arrête pas le service
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