当在前台运行某个作业时,终端会被该作业占据,从而需要再开一个终端来进行其他的操作,为了避免这种不方便我们可以将作业放到后台执行,主要有两种方式
&命令
sh test.sh &
该命令将脚本放到后台执行,但是标准输出还是会显示到当前终端,影响用户操作,所以最好是将输出重定向到其他文件
sh test.sh &>/dev/null
如果需要查看输出结果,也可以定向到一个固定的文件中。
当用户注销或者网络中断时,终端后收到SIGHUP信号,从而关闭其所有子进程,运行的程序会随着终端的关闭而退出,如果我们需要作业在后台执行并不受终端退出的影响,可以用下面的方式
nohup命令
nohup sh test.sh &>/dev/null &
nohup命令会忽略SIGHUP信号,从而终端退出时不会影响到后台作业
例:nohup sh lightsocks-server &>/home/lightsocks-log &
参考资料:http://blog.csdn.net/cuilanbo/article/details/39339789