我正在实施一个简单的作业调度程序,它为每个要运行的作业跨越一个新进程。当作业退出时,我希望它能够向调度程序报告执行的操作数。
我能找到的最简单的方法是以操作数作为返回码退出。例如,该过程将以“3个已执行的操作”返回代码3
退出。
但标准(AFAIK)在进程成功退出时使用返回代码0
,以及出现错误时的任何其他值,这会产生任何问题吗?
注意:子进程不是可执行脚本,而是父进程的分支,因此无法从外部访问。
答案 0 :(得分:2)
您正在寻找的是进程间通信 - 并且有很多方法可以做到:
返回约定更改不是常规程序员应该违反的。
答案 1 :(得分:1)
唯一的风险是混淆调用脚本。你所描述的是有意义的,因为你真正想要的是计数。正如Joe所说,对失败使用负值,你应该考虑包括一个--help选项来解释返回值......所以当你下个月尝试使用它时你可以弄清楚这段代码在做什么。
答案 2 :(得分:0)
我会使用日志:记录执行给调度程序的操作数。这样您还可以记录日期时间和其他额外信息。
我不会改变返回约定......
答案 3 :(得分:0)
如果调度程序跨越一个子项并且您正在编写,那么您也可以为每个子项打开一个管道,或者命名管道或unix域套接字,并将其用于进程间通信并在那里写入已处理的作业。
我会坚持使用惯例,即返回0表示成功,特别是如果你的程序是由其他人可见/可用,或者反正记录这些决定。
除了惯例之外,还有standards。