J'ai créé un service sur Debian 8.6 et alors que j'essaie de le démarrer à l'aide de la commande service, je reçois une erreur.
J'ai essayé systemctl daemon-reload
, mais toujours le même résultat.
$ 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 //eadn-wc01-5196795.nxedge.io/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 configuration est dans /etc/systemd/system/cloud9.service
:
[Unit]
Description=cloud9
[Service]
ExecStart=/opt/bitnami/nodejs/bin/node //eadn-wc01-5196795.nxedge.io/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
Réponse acceptée :
2610 ExecStart=/opt/bitnami/nodejs/bin/node //eadn-wc01-5196795.nxedge.io/home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin (code=exited, status=216/GROUP) … Oct 13 07:21:02 test-vm systemd[1]: cloud9.service: main process exited, code=exited, status=216/GROUP
… qui décrit le problème. Votre groupe nobody
n'est pas un groupe valide sur votre système. Spécifiez un groupe valide.
Environment=PATH=/bin:/usr/bin:/usr/local/bin
C'est probablement inutile.
-w /home/user -l 0.0.0.0
Dans un monde meilleur, le programme de service cloud9 ici recevrait sa socket d'écoute en tant que descripteur de fichier ouvert et hériterait de son répertoire de travail (que, ironiquement, vous avez avez explicitement défini ailleurs dans l'unité).
Autres lectures
- https://unix.stackexchange.com/a/316168/5132