我必须实现一个名为DCMD的linux命令,它具有以下功能:它必须执行另一个默认的linux命令到某个日期和时间,两者都在输入中指定。
简而言之,我应该这样写:dcmd "command" "date and time"
。
问题不是日期或时间,事实上我可以正确管理它,如果它是展望未来,如果日,月和年是正确的等等。 另外命令我认为我已经弄清楚如何处理它:我使用系统调用“execlp”并且它运行正常。
那么,此时我不知道如何合并命令和数据,也就是说,在指定的时间运行以下命令。
有人可以向我解释怎么做吗?
答案 0 :(得分:2)
在Linux上,使用cron
或at
来安排作业以便以后运行。
cron :使用您的具体日期指定一个cron作业。将命令格式化为minute hour day month ? year command
并将其添加到crontab文件中。 cron
然后只会运行一次。使用crontab
处理您的crontab文件。 Man page for crontab
at command :语法:at [-V] [-q queue] [-f file] [-mldbv] TIME
在TIME
的stdin上运行脚本。或者,在具有-f
标志的文件中运行脚本。 Man page for at
答案 1 :(得分:0)
附加信息:这是一个操作系统分配,我必须重新实现" at"的一些功能。或" crontab"。
我找到了解决这个问题的方法。
首先我应该调用" fork"然后在子进程中我应该调用" execlp",同时父进程继续。
如果我想延迟命令,我会打电话给"睡觉"在孩子的过程中(几天前我向教授询问了这一点,他说这很好)。
但我有这个问题:它是一种有效的方法吗?这种方法是否会创建僵尸进程?