将后台进程调用回标准输出

将后台进程调用回标准输出

是否可以“调用”后台进程输出以显示在终端中?

示例: cron 启动 apt-get 来更新系统,我想查看 apt-get 的输出

答案1

并不真地。有一些工具可以将进程与其输出文件分离并将其附加到当前终端 - 请参阅如何否认正在运行的进程并将其关联到新的屏幕外壳?。然而:

  • 这些工具通过调试接口运行(ptrace)并以不正当的方式修改程序的执行。这可能会使某些程序崩溃。
  • 如果它有效,输出将出现在终端上,而不是它应该去的日志文件中,而不是除了日志文件之外。
  • 运行该工具之前发出的输出将仅保存在日志文件中。

cron 作业的输出将记录在某处:crontab 中的脚本将输出重定向到文件,或者 cron 将通过电子邮件将输出发送给管理员。检查 crontab 条目以查看输出的位置。

在 Linux 上,您可以通过查看.文件描述符 1 是标准输出,2 是标准错误。/proc/PID/fd/

答案2

我认为这是不可能的。这将假设进程知道如何处理这种情况并将重新打开 stdin/stdout/stderr。

相关内容