1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Instale y configure systemd en el servidor en la nube administrado
Esta guía explica cómo instalar y configurar systemd en un Servidor Cloud gestionado y presenta las principales órdenes utilizables.
Requisitos previos
- Siga la guía de instalación de systemd para el Servidor Cloud
- Consulte la documentación oficial para conocer todas las posibilidades ofrecidas por systemd
- Los archivos "unit" deben ser colocados 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 ser especificado en cada orden
Órdenes principales
Aquí tiene una lista no exhaustiva de órdenes utilizables con systemd.
Forzar a systemd a volver a leer los archivos unitarios y tener en cuenta las modificaciones:
systemctl --user daemon-reload
Activación de un servicio:
systemctl --user enable --now NOMBRESERVICIO.service
Comprobar el estado de un servicio:
systemctl --user status NOMBRESERVICIO.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]
Descripción={Nombre del servicio} # Especifique aquí un nombre para el servicio. Esto es obligatorio pero no afecta su funcionamiento
[Service]
Reinicio=siempre
Entorno=NODE_VERSION={versión deseada} # Especifique aquí la versión de Node a utilizar. Asegúrese de que esté instalada previamente con "nvm install {versión deseada}"
DirectorioDeTrabajo=%h/{directorio del proyecto Node} # %h corresponde a la raíz del alojamiento
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec {orden de inicio del script de Node}" # Esta orden depende del proyecto. Por ejemplo, "npm run start", "npm run serve" o "node server.js" son comunes
[Install]
DeseadoPor=destino predeterminado
Acciones adicionales con un archivo Unit
systemctl --user daemon-reload
Iniciar el servicio (si ya está activo, no ocurrirá nada):
systemctl --user start [Nombre del Unit]
Detener el servicio (si no está activo, no ocurrirá nada):
systemctl --user stop [Nombre del Unit]
Reiniciar el servicio (si no se está ejecutando, se iniciará):
systemctl --user restart [Nombre del Unit]
Obtener información sobre el servicio; en particular:
- "Activo", que indica si el servicio está en ejecución y desde cuándo
- "CGroup" muestra el grupo de procesos gestionado por el servicio, lo que permite ver los procesos activos, con sus argumentos y su ID
Debajo de "CGroup" se encuentran registros posibles (la salida estándar y los errores del proceso):
systemctl --user status [Nombre del Unit]
Activar el inicio automático del servicio al arrancar el servidor; Nota: esto no inicia el servicio:
systemctl --user enable [Nombre del Unit]
Desactivar el inicio automático del servicio al arrancar el servidor; Nota: esto no detiene el servicio:
systemctl --user disable [Nombre del Unit]
Configuración con entradas de usuario:
[Unit]
Descripción="nombre servicio"
[Service]
Reinicio=siempre
Entorno=NODE_VERSION=16.17
DirectorioDeTrabajo=%h/sites/"nombre-directorio-sitio"/
ExecStart=/bin/bash -c "exec $HOME/.nvm/nvm-exec npm run start"
[Install]
DeseadoPor=destino predeterminado