信息:我指的是this問題我問超級用戶,但無法得到答案,我認爲這是一個很好的問題,因爲問題可能與代碼有關。HTTP服務器在一段時間後停止(Node.js)
我目前正在RaspberryPi上運行一個簡單的Node.JS服務器,其上安裝了Debian上的express.js。一切工作正常,但每天早上我醒來看到我的服務器不再運行(服務器進程我開始與命令node main.js
)。
我的第一個猜測是,Pi有一些睡眠模式,它在幾個小時後沒有流量/ etc並進入關閉服務器的狀態後進入睡眠模式,但我也運行了dydns-client,它是每天早上還在起牀(我也被告知,RaspberryPi沒有帶睡眠模式)。
我寫了一個簡單的腳本來檢查進程是否正在運行並將其寫入日誌文件,但今天早上我不得不注意到,這個腳本運行得並不順利(只有大約兩個小時,它每15秒記錄一次服務器狀態,最後一個狀態爲運行)。
下面是腳本:
#!/bin/sh
MATCH="SOME_PROCESS_NAME"
while [ true ]
do
if [ "$(ps -ef | grep ${MATCH} | grep -v grep)" ]; then
echo "$(date): Process is running ..."
else
echo "$(date): Process has ended ..."
fi
sleep 15
done
有沒有一種方法來跟蹤的過程後,我明天早上開始它來檢查,什麼殺了我的過程中,或者爲什麼它結束(腳本顯然沒有工作)?
服務器本身看起來很簡單,我不認爲我錯過了某種自動關機。這是我使用的代碼。
var express = require('express');
var path = require('path');
var server = express();
server.use(express.static(path.join(__dirname, 'public')));
server.listen(1337);
console.log("Server listening (PORT: " + 1337 + ") ...");
任何想法該怎麼做,以保持服務器運行/找出什麼是停止原因?
更新:我收到了有關RaspberryPi -stackexchange的工作答案。
(飛寫的),你是如何啓動這些進程首先?聽起來他們可能被[SIGHUP'](https://en.wikipedia.org/wiki/SIGHUP)殺死。 – robertklep
@robertklep是啊,我在[RaspberryPi.stackexchange]得到了類似的答案了(http://raspberrypi.stackexchange.com/questions/47139/http-server-stops-after-some-time?noredirect=1#comment70299_47139)我正在測試它:) – LastSecondsToLive