簡體   English   中英

從rc.local永遠為NodeJ運行

[英]Running forever for NodeJs from rc.local

我希望NodeJs服務器在啟動時啟動,並確保它永遠崩潰時仍能啟動。

我已經閱讀了很多有關如何執行此操作以及與之相關的可能問題的文章。 問題是給定機器上的可用內存有限,因此我被迫“包含” NodeJ。

閱讀永久文檔,我發現可以使用以下命令完成此操作:

forever start -c "node --max_old_space_size=512" myapp.js

通過這種方式,永遠調用傳遞內存參數的節點服務器,在這種情況下,內存參數將堆限制為512 MB。 因此,我為rc.local編寫了sh腳本,如下所示:

#!/bin/sh
cd /forever_bin_dir
./forever start -c "node --max_old_space_size=512" /myapp_dir/myapp.js

由於rc.local在有限的環境變量下工作,因此找不到“節點”,並且腳本失敗。

我什至嘗試使用Cron在其文件中添加以下行:

@reboot /forever_bin_dir/forever start -c "node --max_old_space_size=512" /myapp_dir/myapp.js

但是,同樣的問題仍然存在。

我的問題是:在傳遞有關內存的參數的同時,如何在引導時永遠運行?

我發現初始化腳本用於永久啟動Node腳本的相同目的。

我發現的最好方法只是在腳本中設置PATH。

我在主文件夾中創建了一個稱為launchforever.sh的sh腳本,使用#printenv命令獲取了環境變量。

launchforever腳本如下所示:

#!/bin/sh
export PATH=<copied from printenv>:$PATH
forever start -c "node --max_old_space_size=30" > /dev/null

保存后,我給了它權限:

#chmod 700 /home/<user>/launchforever.sh

然后我將其添加到Cron中:

#crontab -u <user> -e

在文件中我添加了:

@reboot /home/<user>/launchforever.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM