La solicitud de inicio del servicio se repite demasiado rápido, negándose a comenzar

14

He creado un servicio en Debian 8.6 y cuando intento iniciarlo usando el comando de servicio, recibo un error.

Lo he intentado systemctl daemon-reload, pero sigo obteniendo el mismo resultado.

$ sudo service cloud9 start
$ sudo service cloud9 status
● cloud9.service - cloud9
   Loaded: loaded (/etc/systemd/system/cloud9.service; enabled)
   Active: failed (Result: start-limit) since Thu 2016-10-13 07:21:02 UTC; 2s ago
  Process: 2610 ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin (code=exited, status=216/GROUP)
 Main PID: 2610 (code=exited, status=216/GROUP)

Oct 13 07:21:02 test-vm systemd[1]: cloud9.service: main process exited, code=exited, status=216/GROUP
Oct 13 07:21:02 test-vm systemd[1]: Unit cloud9.service entered failed state.
Oct 13 07:21:02 test-vm systemd[1]: cloud9.service holdoff time over, scheduling restart.
Oct 13 07:21:02 test-vm systemd[1]: Stopping cloud9...
Oct 13 07:21:02 test-vm systemd[1]: Starting cloud9...
Oct 13 07:21:02 test-vm systemd[1]: cloud9.service start request repeated too quickly, refusing to start.
Oct 13 07:21:02 test-vm systemd[1]: Failed to start cloud9.
Oct 13 07:21:02 test-vm systemd[1]: Unit cloud9.service entered failed state.

La configuración está en /etc/systemd/system/cloud9.service:

[Unit]
Description=cloud9

[Service]
ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin
Restart=always
User=nobody
Group=nobody
Environment=PATH=/bin:/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/user/c9sdk

[Install]
WantedBy=multi-user.target
Peter Gerhat
fuente
1
Si el error impreso por systemctl no es muy claro, puede deberse a que la causa raíz se está tragando y enmascarando como una falla genérica de inicio. Una forma posiblemente útil de descubrir por qué está fallando podría ser simplemente ejecutar manualmente el comando especificado en la directiva ExecStart. En mi caso, la causa raíz apareció de inmediato.
Ubunfu

Respuestas:

6
2610 ExecStart = / opt / bitnami / nodejs / bin / node /home/user/c9sdk/server.js -w / home / user -l 0.0.0.0 -a admin: admin (código = salido, estado = 216 / GRUPO)
...
13 de octubre 07:21:02 test-vm systemd [1]: cloud9.service: proceso principal salido, código = salido, estado = 216 / GRUPO

... que describe el problema. Su grupo nobodyno es un grupo válido en su sistema. Especifica un grupo válido.

Entorno = RUTA = / bin: / usr / bin: / usr / local / bin

Esto es probablemente innecesario.

-w / home / user -l 0.0.0.0

En un mundo mejor, el programa de servicio cloud9 aquí recibiría su socket de escucha como un descriptor de archivo abierto y heredaría su directorio de trabajo (que, irónicamente, ha establecido explícitamente en otra parte de la unidad).

Otras lecturas

JdeBP
fuente
2

Eliminar el parámetro Reiniciar y agregar un usuario / grupo válido me ayudó a resolver el problema.

[Unit]
Description=cloud9

[Service]
ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin
User=user
Group=group
Environment=PATH=/bin:/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/user/c9sdk

[Install]
WantedBy=multi-user.target
Peter Gerhat
fuente