我有一个 C++ 程序,它需要安排未来的各种进程以一次性启动。
开发是在 Linux 中进行的,因此显而易见的选择是使用“at”命令;我对编写自己的作业调度程序不感兴趣!
但是我不愿意从我的程序中派生一个操作系统进程来直接调用“at”可执行文件——因为这很麻烦,而且很麻烦。
使用 cron,我知道您可以将作业作为文件写入 /etc/cron.d,而无需分叉到 crontab。然而,“at”似乎不存在这样的设施。
一些研究使我得出结论,我可以使用共振峰 axxxxxyyyyyyyy 将文件简单地写入 /var/spool/cron/atjobs 其中 x=job id 和 y = 十六进制纪元时间(以分钟为单位) - 但这似乎不符合精神Linux 安全性或约定....加上文件名格式不能在所有 *nix 系统中移植,如果我希望使用另一个操作系统。
当然,我可以使用 cron,但它不能明智地满足一次性工作,所以这也不是一个好的解决方案。我也不想获取这些工具的源代码并将必要的部分重新加工到我的程序中——这也不是完全可移植的。
所以我的问题是 - 如果我想在给定的时间和日期安排未来作业的执行以进行单次运行,任何人都可以建议一种编程方式“很好”的方式来直接连接“at”或 cron 守护程序,而无需分叉到C++ 中的操作系统 .... 还是有其他提供此功能的标准工具?