文章《一分钟了解nohup和&的功效》留了一个“nohup.out为啥没有包含stdout输出”的尾巴,今天把坑填了。

image.png

测试代码是一个打印hello与循环轮数的死循环程序,每打印一行就休眠1秒。

image.png

使用./a.out 运行程序后,每隔一秒会在终端输出一个字符串。

image.png

使用nohup ./a.out运行程序后,有一个“忽略输入,输出至nohup.out”的提示。

image.png

把程序killall干掉之后,果然有一个nohup.out生成。

不过这个文件的大小是0,有点奇怪,启动程序的时候,明明提示了“appending output to nohup.out”呀,这是为什么呢?原本打印在终端的hello字符串去哪里了呢?

留言里不少同学猜测和2>&1 >/dev/null有关,但其实本例并未将标准输出,标准错误输出重定向。

nohup

收藏 打印