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,请注明来意。