有没有办法恢复/恢复 nohup 以在控制台中查看输出?
我知道机会极低,但是有办法吗 查看 nohup-ed 进程最近输出了什么?
我仍然打开这个进程,但我已经将所有输出重定向到 /dev/null 来运行它。
那么有没有办法将这样的过程恢复到控制台,或者是没有希望了:(
干杯
I know chances are extremely low, but is there a way
to see what a nohup-ed process has been outputting recently?
I still have this process open but I've run it with redirecting all output to /dev/null.
So is there a way to recover such process back to console, or is it hopeless :(
Cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一种方法,但它不是直截了当的,技巧是使用 dup2 并取决于您的程序与 libc 链接的事实(所有 c/c++ 应用程序都是如此,但 java 应用程序不会是例如) )
在 gdb 提示符下运行以下命令将 stdout 重定向到 /tmp/newfile
$ print dup2(open("/tmp/newfile",0), 1)
运行以下命令将 stderr 重定向到 /tmp/newfile
$ print dup2(open("/tmp/newfile",0), 2)
dup2 所做的是
There is a way but it isn't straight forward, the trick is to use dup2 and depends on the fact that your program is linked against libc (which all c/c++ applications would be, but a java application wouldn't be for example)
run the following at the gdb prompt to redirect stdout to /tmp/newfile
$ print dup2(open("/tmp/newfile",0), 1)
run the following to redirect stderr to /tmp/newfile
$ print dup2(open("/tmp/newfile",0), 2)
What dup2 does is