Linux下有时候我们希望某个程序可以一直在后台执行,很多都是使用&在程序命令结尾来让程序自动运行。
1
[root@lbogon roy]# ./test.sh &
但是这样在终端关闭的时候,程序也会随之停止,此时我们可以使用nohup命令。
1
[root@lbogon roy]# nohup ./test.sh &
这样的话终端关闭后程序不会停止,但是如果程序执行过程中报错,出现了logout,程序也会随之终止。所以如果我们希望程序可以一直在后台运行,无论是否报错,可以使用下面这个命令。
1
[root@lbogon roy]# nohup ./test.sh >output.log 2>&1 &
上条命令中>output.log
是将输出写入到output.log文件中,2>&1
意思是把标准错误(2)重定向到标准输出中(1),即标准输出以及错误输出都在output.log文件中,程序执行出现错误也不会终止。