
是否可以“调用”后台进程输出以显示在终端中?
示例: cron 启动 apt-get 来更新系统,我想查看 apt-get 的输出
答案1
并不真地。有一些工具可以将进程与其输出文件分离并将其附加到当前终端 - 请参阅如何否认正在运行的进程并将其关联到新的屏幕外壳?。然而:
- 这些工具通过调试接口运行(
ptrace
)并以不正当的方式修改程序的执行。这可能会使某些程序崩溃。 - 如果它有效,输出将出现在终端上,而不是它应该去的日志文件中,而不是除了日志文件之外。
- 运行该工具之前发出的输出将仅保存在日志文件中。
cron 作业的输出将记录在某处:crontab 中的脚本将输出重定向到文件,或者 cron 将通过电子邮件将输出发送给管理员。检查 crontab 条目以查看输出的位置。
在 Linux 上,您可以通过查看.文件描述符 1 是标准输出,2 是标准错误。/proc/PID/fd/
答案2
我认为这是不可能的。这将假设进程知道如何处理这种情况并将重新打开 stdin/stdout/stderr。