Linux在后台运行程序

当在前台运行某个作业时,终端会被该作业占据,从而需要再开一个终端来进行其他的操作,为了避免这种不方便我们可以将作业放到后台执行,主要有两种方式

&命令

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

发表评论

邮箱地址不会被公开。 必填项已用*标注