我知道机会非常低,但是有没有办法查看 nohup-ed 进程最近输出了什么?
我仍然打开这个进程,但我已经将所有输出重定向到 /dev/null 来运行它。
那么有没有办法将这样的过程恢复到控制台,或者它是无望的:(
干杯
我知道机会非常低,但是有没有办法查看 nohup-ed 进程最近输出了什么?
我仍然打开这个进程,但我已经将所有输出重定向到 /dev/null 来运行它。
那么有没有办法将这样的过程恢复到控制台,或者它是无望的:(
干杯
有一种方法,但它不是直截了当的,诀窍是使用 dup2 并取决于您的程序与 libc 链接的事实(所有 c/c++ 应用程序都将是,但 java 应用程序不会是例如)
在 gdb 提示符下运行以下命令将标准输出重定向到 /tmp/newfile
$ print dup2(open("/tmp/newfile",0), 1)
运行以下命令将 stderr 重定向到 /tmp/newfile
$ print dup2(open("/tmp/newfile",0), 2)
dup2所做的是
复制文件描述符 这意味着 stdout/stderr(1 和 2)和从 open 返回的新文件描述符可以互换使用,这将导致所有输出到 stdout 和 stderr 到您打开的文件。