将过程带到屏幕上

Sug*_*ime 2 redhat

我正在运行一个需要几个小时的过程。我想与服务器断开连接,但我不想将输出丢失到屏幕上。断开连接后,有没有办法将进程带回我的屏幕?这是一个正在运行的 Python 脚本,它在 Red Hat 6.3 上

Mik*_*eyB 11

回到过去,嘲笑自己没有提前考虑。

然后,针对正在运行的程序启动 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
Run Code Online (Sandbox Code Playgroud)

然后就可以Ctrl-Z, bg, 和disown原来的流程了。

  • @Sugitime 你找到的所有答案都隐含地回答了你的问题(***“你不能回到过去。”*** - 通常)。这个答案为您提供了一种选择,您可以使用一些特定于操作系统的技巧来附加到不同的 TTY(例如 [`watch`](http://www.freebsd.org/cgi/man.cgi?query= watch) 在 FreeBSD 上,但我不确定 Linux/RedHat 等价物是什么,如果存在的话。 (2认同)