linux - 查看 linux 中已运行进程的输出

标签 linux process ps

我有一个在后台运行的进程(sh 脚本),我想知道是否可以在不中断它的情况下查看该进程的输出。

该进程由某个应用程序运行,否则我会将其附加到屏幕上供以后查看。这可能需要一个小时才能完成,我想确保它正常运行,没有错误。

最佳答案

在linux中已经有一个使用ptrace(2)的程序来做这个,retty:

http://pasky.or.cz/dev/retty/

如果您正在运行的程序已经附加到 tty,它会起作用,我不知道如果您在后台运行您的程序是否会起作用。

至少它可能会给出一些好的提示。 :)

您可能可以使用 ptrace(2) 从程序中检索退出代码,否则只需附加到使用 gdb -p <pid> 的进程, 当程序结束时它会被打印出来。

您还可以使用 gdb 操作文件描述符:

(gdb) p close(1)
$1 = 0
(gdb) p creat("/tmp/stdout", 0600)
$2 = 1

http://etbe.coker.com.au/2008/02/27/redirecting-output-from-a-running-process/

关于linux - 查看 linux 中已运行进程的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184662/

相关文章:

bash - 使用 bash ps 和 cut 一起

linux - docker-compose.yml 在以点 (.) 开头的文档上使用卷

asp.net - Linux 或 OS X 中的 Web API 2.1

c++ - CURL download_progress 抛出 SIGSEGV

c# - 从 C# .net 调用 python.py

c - 如何在给定时刻创建线程

linux - 清理这个命令

java - Xlib:使用 XAddToChangeSet 向保存集添加窗口在 Java/JNI 中不起作用

python - 如何从后台运行的脚本返回命令行