这个问题我也不懂,但是帮你找到了一篇文章:
blog点sinzy点net/ifyr/entry/22768
如何把一个正在运行中的程序放到后台去执行?
由于事先没有重定向输出到文件或者忘记使用screen、nohup一类的命令,然后进程又不方便停止,而且程序还有可能不会忽略所有挂断(SIGHUP)信号。
这时可以采用如下办法:
1、获得程序的进程号(PID)
2、使用gdb调试这个进程。(gdb -p xxx)
3、通过close系统调用关闭标准输出(STDOUT)或者标准错误(STDERR)
4、通过creat系统调用打开一个文件并将其文件描述符通过dup2系统调用复制给标准输出或者标准错误
5、退出调试器。
现在可以将程序通过“CTRL+z”, “bg”, “disown“放入后台运行了。
详细操作步骤如下
user:~ $ ps awux | grep [t]op
user 4753 0.1 0.0 2308 1008 pts/2 S+ 17:44 0:00 top -b
user:~ $ gdb -p 4753
GNU gdb (GDB) 7.0
...
0xb776a424 in __kernel_vsyscall ()
(gdb) call close(1)
$1 = 0
(gdb) call dup2(creat(”/tmp/log”, 0600), 1)
$2 = 1
(gdb) quit