[英]Why is forever not working to keep my nodejs process running after I logout?
我在家里設置了一個Ubuntu服務器,用於托管由nodejs服務的Web應用程序。 我的服務器上有一個連接應用程序。 當我進去並做類似的事情時
node app.js &> server.log &
logout
然后,我注銷后,服務器就像被擱置一樣,它將不處理任何請求,但是當我重新登錄時,它將再次開始處理請求。
因此,看起來永久包裝旨在解決此問題。 所以永遠安裝並執行此操作:
forever start -al forever.log -ao serverout.log -ae servererror.log app.js
我從此命令得到相同的結果。 SSH進入時,我的服務器將處理請求,但是注銷后,服務器將停止處理請求。 我還可以做些什么來解決這個問題?
考慮使用cron
。 您可以在不帶任何選項的bash中運行crontab
來獲取您帳戶的cron配置。 您可能需要root用戶訪問權限,然后必須使用-u選項指定用戶帳戶。 有關發行版實施的更多信息,請參見man crontab
。
我敢肯定有更好的在那里,但是這是對的cron的語法一個體面的教程。
我不會為此使用Forever,而是要使用具有Monit功能的 Supervisord等生產就緒型工具,請參閱在單個服務器上運行和管理nodejs應用程序 。
對於每個應用程序,只需創建一個Supervisor配置文件,如下所示:
[program:myapp]
command=node myapp.js ; the program (relative uses PATH, can take args)
directory=/www/app/ ; directory to cwd to before exec (def no cwd)
process_name=myapp ; process_name expr (default %(program_name)s)
autorestart=true ; whether/when to restart (default: unexpected)
startsecs=1 ; number of secs prog must stay running (def. 1)
stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
stdout_logfile=/var/log/myapp.log ; stdout log path, NONE for none default AUTO
stderr_logfile=/var/log/myapp.err.log ; stderr log path, NONE for none default AUTO
更多信息: Brin.gr上的NodeJS流程管理 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.