最近部署了一个easymock 因为,在命令行中启动,当xshell关闭后,easymock 停止工作,
nohup npm run dev & 这个命令并不能再后台启动守护这个easymock进程,当我关闭xshell回话后,发现easymock服务停止。
最后还是用了forever 命令很轻松的解决了问题。
[root@sxfz-216 ~]# cd easy-mock/
[root@sxfz-216 easy-mock]# ll
total 732
-rw-r--r-- 1 root root 2056 Dec 29 13:53 app.js
drwxr-xr-x 2 root root 4096 Dec 29 13:53 build
-rw-r--r-- 1 root root 9444 Dec 29 13:53 CHANGELOG.md
drwxr-xr-x 2 root root 4096 Mar 25 15:06 config
drwxr-xr-x 2 root root 4096 Dec 29 13:53 controllers
-rw-r--r-- 1 root root 79 Dec 29 13:53 jest.config.js
-rw-r--r-- 1 root root 35051 Dec 29 13:53 LICENSE
drwxr-xr-x 2 root root 4096 Dec 29 13:53 middlewares
drwxr-xr-x 2 root root 4096 Dec 29 13:53 models
drwxr-xr-x 1154 root root 36864 Dec 29 13:58 node_modules
-rw------- 1 root root 27110 Mar 31 09:27 nohup.out
-rw-r--r-- 1 root root 3998 Dec 29 13:53 package.json
-rw-r--r-- 1 root root 551720 Dec 29 13:58 package-lock.json
drwxr-xr-x 2 root root 4096 Dec 29 13:53 proxy
drwxr-xr-x 3 root root 4096 Dec 29 13:53 public
-rw-r--r-- 1 root root 12051 Dec 29 13:53 README.md
-rw-r--r-- 1 root root 11522 Dec 29 13:53 README.zh-CN.md
-rw-r--r-- 1 root root 1882 Dec 29 13:53 router-config.js
drwxr-xr-x 6 root root 4096 Dec 29 13:53 test
drwxr-xr-x 2 root root 4096 Dec 29 13:53 util
drwxr-xr-x 10 root root 4096 Dec 29 14:02 views
[root@sxfz-216 easy-mock]# forever start app.js
[root@sxfz-216 easy-mock]# forever list
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] kEMH /root/.nvm/versions/node/v8.11.0/bin/node app.js 10479 10485 /root/.forever/kEMH.log 0:0:7:15.954000000000008
[root@sxfz-216 easy-mock]#
forever能做更多的事情,比如分别记录输出和错误日志,宕机重启,热部署。比如可以在js中作为api使用
2.1安装forever
npm install forever -g
2.2启动服务
service forever start
2.2使用forever启动js文件
forever start app.js
2.3停止js文件
forever stop app.js
2.4启动js文件并输出日志文件
forever start -l forever.log -o out.log -e err.log app.js
2.5重启js文件
forever restart app.js
2.6查看正在运行的进程
forever list