Base de connaissances

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.

 

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

 

⚠️ 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.


Cette FAQ a été utile?