我正在运行一个需要几个小时的进程。我想断开与服务器的连接,但又不想丢失屏幕上的输出。断开连接后,有没有办法让进程返回到我的屏幕上?这是一个正在运行的 Python 脚本,运行在 Red Hat 6.3 上
答案1
回到过去,责怪自己没有提前考虑。
然后,针对正在运行的程序启动 gdb,中断它并针对文件重新打开 STDOUT。然后您应该能够将其置于后台并执行 nohup 而不会丢失输出。
(gdb) attach 18456
Attaching to process 18456
...
(gdb) call open("/tmp/myoutput.txt", 0102)
$1 = 3
(gdb) call dup2(3,1)
$2 = 1
(gdb) call close(3)
$3 = 0
(gdb) detach
Detaching from program: /usr/bin/python2.7, process 18456
(gdb) quit
然后您就可以Ctrl-Z、、bg
和disown
原始流程。