&
我们要让程序test在后台运行,并且不要把log输出到终端上。
./test &
这样,test程序就会在后台运行了。但是log依旧不停的输出在终端上。
这时,应该将log重定向到指定文件:
./test >> out.txt 2>&1 &
2>&1是指将标准错误重定向到标准输出。于是,标准错误和标准输出都重定向到指定的out.txt文件中,从此终端真正清净了。
nohup
在命令的末尾加个&,程序可以在后台运行,但是一旦当前终端关闭,该程序就会停止运行。
可以使用nohup命令,no hang up就是不挂起的意思。
nohup ./test &
如果仅仅使用nohup命令,程序的输出就会默认重定向到一个nohup.out文件下。如果我们想要输出到指定文件,可另外指定输出文件:
nohup ./test > myout.txt 2>&1 &
如果使用nohup后,程序还是自己结束了,可能是因为账户非正常退出。所以最好使用exit退出当前账户。