让命令在后台执行的几种方法
Linux终端命令行输入命令执行,但是关闭终端,正在执行的命令也会被终止。很头疼,因为SSH远程到服务器上,对于一些需要长期运行的服务总不能一直连着终端“保活”吧。一旦断开怎么让命令继续执行呢?
对后台的网易云API服务(端口3000)进行升级,记录一下将服务放到后台执行。
1、&
&在输入的命令行结尾来命令后台继续运行。
1.1、&用法
在执行的命令行结尾加上&
ping quibbler.cn &上面的命令就会一直执行,不过输出一直占用终端屏幕也不友好。可以将输出导至文件或者/dev/null“黑洞”
ping quibbler.cn > /dev/null &1.2、查看后台执行的任务
那么怎么查看后台正在运行的任务呢?输入jobs命令查看。jobs命令以后再详细了解。
jobs会显示后台执行的任务:

1.3、缺点
虽然能在后台运行,但是终端关闭的话,执行命令的进程还是会终止。
2、nohup
nohup是no hang up的缩写,意思是“没有挂断”。
2.1、使用
非常推荐使用这个,好用靠谱!及时远程终端断开,账号退出,命令启动的服务仍然可以在服务器上执行。
nohup node ./app.js将输出的日志保留或者输出到“黑洞”丢弃
nohup node ./app.js > /dev/null2.2、查看后台执行的服务
不同于jobs,任务已经真正挂起到后台脱离终端。查看进程即可查看到后台执行的任务
ps -aux | grep node
相关博客:
Linux nohup实现后台运行程序及查看


