Como corrigir o status de saída 127?

0

Eu tentei seguir este guia para executar um aplicativo do Node como um serviço. No entanto, ele está falhando ao iniciar, com o código de saída 127. Existe alguma maneira de corrigir isso?

Esta é a revista.

sudo  journalctl --follow -u serviceName
-- Logs begin at Tue 2017-08-08 16:27:10 GMT. --
Aug 08 17:06:57 raspberrypi systemd[1]: Started serviceName.
Aug 08 17:06:57 raspberrypi app.js[7234]: [46B blob data]
Aug 08 17:06:57 raspberrypi systemd[1]: serviceName.service: main process exited, code=exited, status=127/n/a
Aug 08 17:06:57 raspberrypi systemd[1]: Unit serviceName.service entered failed state.
Aug 08 17:06:57 raspberrypi systemd[1]: serviceName.service holdoff time over, scheduling restart.
Aug 08 17:06:57 raspberrypi systemd[1]: Stopping serviceName...
Aug 08 17:06:57 raspberrypi systemd[1]: Starting serviceName...
Aug 08 17:06:57 raspberrypi systemd[1]: serviceName.service start request repeated too quickly, refusing to start.
Aug 08 17:06:57 raspberrypi systemd[1]: Failed to start serviceName.
Aug 08 17:06:57 raspberrypi systemd[1]: Unit serviceName.service entered failed state.

Este é o serviceName.service.

[Unit]
Description=ServiceName
After=network.target

[Service]
ExecStart=/home/pi/projects/ServiceName/app.js
Restart=always
User=root
Group=root
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/pi/projects/ServiceName

[Install]
WantedBy=multi-user.target

Isso está no topo do meu app.js.

#!/usr/bin/env node
    
por Chris Talman 08.08.2017 / 19:35

2 respostas

3

ExecStart=/home/pi/projects/ServiceName/app.js

Isso está dizendo systemd para executar app.js diretamente. Este arquivo .js é diretamente executável? Caso contrário, o shell lançará um código de saída 127 - "Comando desconhecido".

    
por 08.08.2017 / 19:51
0

127 é um comando não encontrado.

Certifique-se de que o usuário root tenha acesso ao nó binário ou mude as linhas seguintes com o usuário para o qual você instalou o nó

User=root
Group=root

Else Tente seguir

[Unit]
Description="ServiceName"
After=network.target

[Service]
ExecStart=path_to_node/node /home/pi/projects/ServiceName/app.js
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=10

# Output to syslog
StandardOutput=syslog
StandardError=syslog
#Change this to find app logs in /var/log/syslog
SyslogIdentifier=nodejs-api
# Followig will require if you are using the PORT or Node from Envirnoment
Environment=NODE_ENV=production PORT=3000

[Install]
WantedBy=multi-user.target

Quando a máquina do seu servidor estiver funcionando & você não é capaz de acessar o servidor, você soluciona problemas verificando logs de / var / log / syslog pelo seguinte comando

sudo cat / var / log / syslog | grep -r "nodejs-api"

Iniciar na inicialização: sudo systemctl ativar o rocketch

    
por 29.05.2018 / 14:04