我在家中设置了一个Ubuntu服务器,用于托管由nodejs提供服务的Web应用程序。我的服务器上有一个连接应用程序。当我进入并执行类似
之类的操作时node app.js &> server.log &
logout
然后在我注销后,服务器就像处于保持状态一样,它不会提供任何请求,但是当我重新开始服务时,它会再次开始服务请求。
所以看起来永远的包是为解决这个问题而设计的。所以永远安装并且这样做:
forever start -al forever.log -ao serverout.log -ae servererror.log app.js
我从这个命令得到了相同的结果。我正在服务时,我的服务器将处理请求,但是一旦我注销我的服务器就停止提供请求。我还能做些什么来解决这个问题?
答案 0 :(得分:0)
考虑使用cron
。您可以在bash中运行crontab
,但没有选项可以获取您帐户的cron配置。您可能需要root访问权限,然后必须使用-u选项指定用户帐户。有关您的发布实施的更多信息,请参阅man crontab
。
我确信那里有更好的,但是this是关于cron语法的一个不错的教程。
答案 1 :(得分:0)
我不会将Forever用于此项,而是使用生产就绪工具,例如Supervisord和Monit,请参阅Running and managing nodejs applications on single server。
对于每个应用程序,只需创建一个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