![systemd se bloquea cuando inicio o reinicio un servicio](https://rvso.com/image/898924/systemd%20se%20bloquea%20cuando%20inicio%20o%20reinicio%20un%20servicio.png)
Soy nuevo en systemd después de actualizar a 16.04 y tengo un problema al iniciar y reiniciar los servicios. Cuando corro (por ejemplo)...
systemctl start djalbat.com
...parece funcionar, sin embargo, no recibo el mensaje, simplemente parece colgarse. Si ctrl-c
recibo el mensaje y luego pruebo si el servicio se ha iniciado, parece que sí lo ha hecho. Me pregunto qué hay en la configuración que podría causar que esto suceda. Aquí lo tienes:
[Unit]
Description=djalbat.com
[Service]
Type=forking
WorkingDirectory=/var/www/djalbat.com/
ExecStart=/usr/bin/node ./bin/main.js start 2>&1 >> /var/log/djalbat.com.log
[Install]
WantedBy=multi-user.target
WantedBy
Además, se agradecería que alguien pudiera señalar la necesidad de la última directiva.
Respuesta1
Entonces resultó que el comando que se ejecuta con la ExecStart
configuración notenedormientras que el systemd
servicio se configuró para un ejecutable de bifurcación. Esto lleva systemctl
a esperar la finalización del ejecutable, lo que provoca que la línea de comando no regrese.
La configuración correcta para un ejecutable que notenedores usar Type=simple
.
[Unit]
Description=djalbat.com
[Service]
Type=simple
WorkingDirectory=/var/www/djalbat.com/
ExecStart=/usr/bin/node ./bin/main.js start 2>&1 >> /var/log/djalbat.com.log
[Install]
WantedBy=multi-user.target
Es WantedBy
necesario para conectar esta unidad con un objetivo, por lo que esta unidad o servicio se inicia automáticamente cuando se alcanza el objetivo apropiado y el servicio está habilitado para iniciarse automáticamente con
systemctl enable djalbat
No olvide actualizar systemd
después de haber realizado cambios en sus archivos de servicio con
systemctl daemon-reload