Ho creato un servizio su Debian 8.6 e mentre sto provando ad avviarlo utilizzando il comando service, ricevo un errore.
Ho provato systemctl daemon-reload
, ma ottenendo sempre lo stesso risultato.
$ 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 configurazione è in /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
Risposta accettata:
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
... che descrive il problema. Il tuo gruppo nobody
non è un gruppo valido sul tuo sistema. Specifica un gruppo valido.
Environment=PATH=/bin:/usr/bin:/usr/local/bin
Questo probabilmente non è necessario.
-w /home/user -l 0.0.0.0
In un mondo migliore, il programma di servizio cloud9 qui riceverebbe il suo socket di ascolto come descrittore di file aperto ed erediterebbe la sua directory di lavoro (che, ironia della sorte, avete impostato in modo esplicito altrove nell'unità).
Ulteriori letture
- https://unix.stackexchange.com/a/316168/5132