systemd - Meu serviço personalizado sai com o código de status 216 / GROUP

1

Eu instalei o seguinte arquivo de unidade para um Nodejs Express Server:

 [Unit]
 Description=Server for SpeedBot
 After=network.target

 [Service]
 ExecStart=/var/www/SpeedBot/server.js
 Restart=always
 User=nobody
 Group=nobody
 Environment=PATH=/usr/bin:/usr/local/bin
 Environment=NODE_ENV=production
 WorkingDirectory=/home/pi/SpeedBot/server.js

 [Install]
 WantedBy=multi-user.target

Quando eu executo e faço: service speedbotserver status i get:

● speedbotserver.service - Server for SpeedBot
   Loaded: loaded (/etc/systemd/system/speedbotserver.service; disabled)
   Active: failed (Result: start-limit) since Thu 2017-06-29 01:31:18 UTC; 18h ago 
  Process: 19189 ExecStart=/var/www/SpeedBot/server.js (code=exited, status=216/GROUP)
 Main PID: 19189 (code=exited, status=216/GROUP)
    
por medicengonzo 29.06.2017 / 21:52

2 respostas

1

Group=nobody

Quando a mensagem de erro informa que há um problema ao definir o grupo que o serviço executa, que é o que esse código de status está fazendo, realmente seu primeiro pensamento deve ser "Eu configurei um grupo válido para este serviço?" / p>

Não execute serviços como nobody , a propósito. Esta é uma má ideia que o mundo aprendeu a não fazer nos anos 90. nobody tem um uso específico relacionado ao NFS, o que significa que ele é o proprietário (aparente) de (possivelmente muitas) coisas no sistema de arquivos. Ele não é adequado para executar processos do daemon, cujas contas de usuário geralmente devem possuir apenas uma quantidade limitada de coisas no sistema de arquivos que estão diretamente relacionadas à sua operação.

Execute seu serviço como uma conta de usuário dedicada específica para o serviço.

Leitura adicional

por 03.07.2017 / 19:35
0

Você pode tentar com a configuração de unidade abaixo:

 [Unit]
 Description=Server for SpeedBot
 After=network.target

 [Service]
  ExecStart=/bin/sh -c "exec /usr/bin/node /var/www/SpeedBot/server.js"
  Restart=always
  User=nobody
  Group=nobody
  Environment=PATH=/usr/bin:/usr/local/bin
  Environment=NODE_ENV=production
  WorkingDirectory=/var/www/SpeedBot

 [Install]
 WantedBy=multi-user.target
    
por 30.06.2017 / 08:34