1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Instalar y configurar systemd en Serveur Cloud
Esta guía explica cómo instalar y configurar systemd
en un Servidor Cloud y presenta los principales comandos utilizables.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.
Requisitos previos
- Seguir la guía de instalación
systemd
para Serveur Cloud. - Consultar la documentación oficial para conocer todas las posibilidades ofrecidas por systemd
- Los archivos "unit" deben colocarse en:
~/.config/systemd/user/ (/home/clients/absolute-path-id/.config/systemd/user)
(reemplazando absolute-path-id visible en su Manager) y los permisos deben configurarse en 0644. - El parámetro
--user
debe especificarse en cada comando.
Principales comandos
Aquí tienes una lista no exhaustiva de comandos que puedes usar con systemd
.
Forzar a systemd
a leer nuevamente los archivos de unidad y a tener en cuenta los cambios:
systemctl --user daemon-reload
Activación de un servicio:
systemctl --user enable --now SERVICENAME.service
Verificación del estado de un servicio:
systemctl --user status SERVICENAME.service
Configuración de Node como servicio con systemd
Será necesario crear un archivo "Unit" con la extensión ".service", que deberá guardarse en el directorio:
~/.config/systemd/user/
Es posible reutilizar el ejemplo a continuación reemplazando los valores que comienzan 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
Acciones adicionales con un archivo Unit
systemctl --user daemon-reload
Iniciar el servicio (si ya está activo, no pasa nada):
systemctl --user start [Nom du Unit]
Detener el servicio (si este no está activo, no pasa nada):
systemctl --user stop [Nom du Unit]
Reiniciar el servicio (si no está en funcionamiento, se inicia):
systemctl --user restart [Nom du Unit]
Obtener información sobre el servicio; en particular:
- "Activo" que indica si el servicio está en funcionamiento y desde cuándo
- CGroup muestra el grupo de procesos que gestiona el servicio, lo que permite ver los procesos activos, con sus argumentos y su ID
Debajo de "CGroup" se encuentran posibles registros (la salida estándar y de error del proceso):
systemctl --user status [Nom du Unit]
Habilitar el inicio automático del servicio al arrancar el servidor; NB: esto no inicia el servicio:
systemctl --user enable [Nom du Unit]
Desactivar el inicio automático del servicio al arranque del servidor; NB: esto no detiene el servicio:
systemctl --user disable [Nom du Unit]
Configuración con las entradas 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