Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Linux crontab中,我的程序的stderr必须重定向,为什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我写了一个程序,可以输出到stderr.当我通过 Linux crontab运行它时,我必须重定向stderr.如果没有,程序将以SIGPIPE退出.为什么? 不好 45 10 * * * /home/sandy/test > /home/sandy/test.log & 好 45 10 * * * /home/sandy/test > /home/sandy/test.log 2>&1 & 您正
我写了一个程序,可以输出到stderr.当我通过 Linux crontab运行它时,我必须重定向stderr.如果没有,程序将以SIGPIPE退出.为什么?

不好

45 10 * * * /home/sandy/test > /home/sandy/test.log &

45 10 * * * /home/sandy/test > /home/sandy/test.log 2>&1 &

解决方法

您正在后台运行命令(& at the end).这意味着cron已经开始运行命令的shell将不会等待它的完成并在命令启动后立即终止.如果您的程序现在尝试写入stderr,则没有任何内容连接到读取端,您将获得一个SIGPIPE.如果重定向文件,则不会发生这种情况,因为正在运行的进程知道要写入的位置.

解决这个问题的另一种方法是在前台运行命令,即没有& amp;在末尾.无论如何,这是更好的做法.

大佬总结

以上是大佬教程为你收集整理的在Linux crontab中,我的程序的stderr必须重定向,为什么?全部内容,希望文章能够帮你解决在Linux crontab中,我的程序的stderr必须重定向,为什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: