如何从背景获取stdout?

时间:2016-01-30 18:22:39

标签: linux terminal background-process nohup

让我们假设我有一个C ++程序一直在生成输出

#include <iostream>

using namespace std;

void main()
{
    int i=0;
    while(1)
    {
        cout << (i++)%10 << endl;
    }
}

我现在想在远程linux服务器的后台运行这个程序。如果我这样做

nohup ./program &>/dev/null &
然后我根本得不到任何输出。如果我做

nohup ./program &

所有输出都写入nohup.out充斥我的硬盘。

如何在后台关闭输出并在程序处于前台时打开输出到控制台?

1 个答案:

答案 0 :(得分:0)

只是猜测,但您可以将nohup.out链接到/dev/null并删除链接以开启登录文件。

创建符号链接: ln -s /dev/null nohup.out

删除链接: rm nohup.out

如果删除链接后nohup没有创建日志文件,则可能需要使用

创建日志文件

touch nohup.out