必会技能
在工程师(程序员)的学习和工作中,天天都在和程序打交道,然后依然有蛮多同学,竟然不知道如何去后台运行程序,并在需要的时候杀死它。
一、Nohup
如果要实现程序的后台运行,现在用的比较多的一种方案就是Nohup。
那么来看看这个到底是什么
Nohup维基百科
nohup是忽略HUP(挂断)信号的POSIX命令。按照惯例,HUP信号是终端警告注销相关过程的方式。
如果输出没有被重定向,那么通常会去往终端的输出会转到名为nohup.out的文件。
二、使用
下面的第一个命令abcd在后台启动程序,以便后续注销不会停止它。
$ nohup abcd &
请注意,这些方法可防止进程在注销时发送“停止”信号,但如果正在接收这些标准I / O文件(标准输入,标准输出或标准错误)的输入/输出,它们仍会挂起终端。
nohup通常与nice命令结合使用,以低优先级运行进程。
nohup nice abcd &
三、案例分析
1.以我电脑中的MongoDB程序为例
传统的启动方式:mongod
$ mongod
2018-06-08T16:22:28.560+0800 I CONTROL [initandlisten] MongoDB starting : pid=4065 port=27017 dbpath=/data/db 64-bit host=wdMac.local
2018-06-08T16:22:28.560+0800 I CONTROL [initandlisten] db version v3.6.5