nohup让node.js以系统守护进程运行

Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。但是某些程序仅仅这样是不行的,因为只有系统进程(服务)才能常驻。一般普通的程序在终端执行后,终端关闭了,就不能执行了。比如说执行node.js 或者wget下载大量文件时候,nohup 就派上用场了。

nohup是什么?
nohup是由两个字组成的命令:no-hup,hup指的是SIGHUP(hangup)这个信号,nohup就是忽略SIGHUP这个信号的意思。当我们从一个连线登出的时候,每个process都会收到一个SIGHUP信号,透过nohup所下达的命令就可以不受影响,继续执行。

nohup 用法
该命令的一般形式为:nohup command & 默认会将命令执行的结果输出到nohup.out 文件中,当然也可以不输出,或者输出重定向到其他的文件。
nohup your_command > myout.txt & 输出到myout.txt
nohup your_command > /dev/null 2>&1 & 输出到/dev/null ,但引文/dev/null的特殊存在,所以不会记录。

实例: nohup node server.js > /dev/null 2>&1 & 执行server.js,关闭putty后,访问上一篇文章vps中搭建的nodejs 环境地址依然能够打开。
http://10-20-0-118.my.micloud.tw:3000/