2015-12-14 34 views
0

我正在使用NPM軟件包service-systemd來監視NodeJS應用程序,並在它崩潰或死機的情況下重新啓動它。如何使用npm自動啓動服務service-systemd

NPM service-systemd

當我運行 'sudo的節點systemd添加服務template.json',我得到:

WARNING: wrap.bin not found 
parsing ... 
writing script start/stop files, logrotate.d ... 
> chmod a+x /usr/local/bin/systemd-my-node-service* 
writing systemd file ... 
/etc/systemd/system/my-node-service.service 
installing ... 
> systemctl enable my-node-service.service;systemctl daemon-reload 
done 

當我嘗試運行 'sudo的服務啓動',該服務失敗。檢查「journalctl」顯示:

Starting service... 
/usr/local/bin/systemd--start: line 2: /usr/bin/forever: No such file or directory 
PID file /var/run/.pid not readable (yet?) after start. 
Failed to start service 
Unit .service entered failed state. 
.service failed. 

我發現一些消息來源暗示像符號鏈接的事情,但是沒有,這似乎解決問題。任何想法這裏發生了什麼?

使用Ubuntu 15.04和NodeJS v0.10.40在Odroid XU4上運行此操作。

感謝,

+0

如使用硬配置systemd應用程序的替代,嘗試使用泊塢容器重新啓動策略: https://docs.docker.com/engine/reference/run/#restart-policies-restart –

+0

碼頭集裝箱對我來說是新的。這對永久/ systemd節點包有什麼好處? 它檢查服務是否被凍結? 我問,因爲這項服務使用USB 2.0 BLE加密狗,有時關閉(我認爲這是來自XU4 USB集線器的DC電流問題,但我需要使這個東西防彈,所以我仍然在尋找解決方案),因此需要重新啓動該服務,以使其能夠被藍牙守護進程重新'恢復'。我沒有信心,我總是可以永遠趕上/ systemd。 – RoboArch

+0

容器在應用程序級別很有用。您也可以使用設備:https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/但它很難配置,性能較差。如果服務被凍結,我不確定自動重啓。 –

回答

0

這實際上竟然是與我所用的的NodeJS版本的問題。我在RPi2上開始了這個項目,它在NodeJS v4 +上存在問題。 XU4不需要使用v0.10.x,所以我卸載了舊版本並更新到最新版本。現在都好。

0

我已經發布了不永遠需要一個新的版本,並提供更好的API,這些錯誤被刪除