Faça corretamente.
- Não use
forever
em gerenciadores de serviços. Eles já fazem isso. - Não use
pgrep
ekill
em gerenciadores de serviços. Eles fazem isso melhor. - Não use
start-stop-daemon
em gerenciadores de serviços. Eles fazem isso melhor.
Todo esse mecanismo com esse script de shell é errado para começar, e consertar sua incompatibilidade de protocolo de prontidão seria simplesmente passar por cima de algumas grandes falhas. Você não precisa de nenhum script de gerenciamento todo-compilado-pobre-imitação-daemon. Você tem um gerenciador de serviços que pode fazer isso diretamente e com segurança . Use-o.
# /etc/systemd/system/[email protected] [Unit] Description=node service for %i.js Documentation=https://unix.stackexchange.com/questions/207658/ After=network.target [Service] Type=simple ExecStart=/usr/local/bin/node /home/www/html/%i.js Restart=on-abort SyslogIdentifier=node-%i [Install] WantedBy=multi-user.target
Corrija o caminho para /usr/local/bin/node
conforme apropriado.
Os comandos usuais então se aplicam:
-
systemctl preset [email protected] [email protected]
-
systemctl start [email protected] [email protected]
-
systemctl status [email protected] [email protected]
Leitura adicional
- Félix Saparelli (2013-11-26). Como implantar aplicativos Node.js Usando Systemd e Nginx .
- Ruben Vermeersch (2013-01-16). Implementando o Node.js com o systemd .
- link
- link