1

我必须实现一个名为 DCMD 的 linux 命令,它具有以下功能: 它必须在输入中指定的某个日期和时间执行另一个默认的 linux 命令。

简而言之,我应该这样写:dcmd "command" "date and time".

好吧,问题不在于日期或时间,实际上我可以正确管理它,如果它正在展望未来,如果日、月和年是正确的等等。..还有我想我已经弄清楚的命令处理它:我使用了系统调用“execlp”并且它运行正常。

好吧,此时我不知道如何合并命令和数据,即在指示的时间运行以下命令。

有人可以向我解释该怎么做吗?

4

2 回答 2

2

在 linux 上,使用cronat来安排作业以供以后运行。

cron:使用您的特定日期指定一个 cron 作业。将您的命令格式化为minute hour day month ? year command并将其添加到您的 crontab 文件中。cron然后将只运行一次您的工作。用于crontab处理您的 crontab 文件。crontab 的手册页

at 命令:语法:at [-V] [-q queue] [-f file] [-mldbv] TIME 在标准输入上运行脚本 at TIME。或者,在带有-f标志的文件中运行脚本。at 的手册页

于 2012-05-15T20:45:02.033 回答
0

附加信息:这是一个操作系统作业,我必须在其中重新实现“at”或“crontab”的一些功能。

我找到了解决这个问题的方法。

首先我应该调用“fork”,然后在子进程中我应该调用“execlp”,而父进程继续。

如果我想延迟命令,我会在子进程中调用一个“睡眠”(我前几天向教授询问了这一点,他说可以)。

但我有一个问题:这是一种有效的方法吗?这种方法会创建僵尸进程吗?

于 2012-05-21T16:02:52.083 回答