2012-05-15 105 views
1

我必须实现一个名为DCMD的linux命令,它具有以下功能:它必须执行另一个默认的linux命令,以便在输入中指定的某个日期和时间。我想这样写:dcmd "command" "date and time"如何在linux上编写命令

那么问题不是日期或小时,事实上,我可以正确地管理它,如果它正在展望未来,如果日,月和年是正确的,等等.. 也是我想我的命令已经想出了如何处理它:我使用系统调用“execlp”,它运行正常。

那么,在这一点上,我不知道如何合并命令和数据,也就是说,在指定的时间运行以下命令。

有人可以向我解释如何做?

+2

当'cron'已经存在时,为什么你会这么做? –

+7

这听起来像你正试图重新执行'at'命令。 – chepner

+1

有一个名为'at'的命令已经做到了。 –

回答

2

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

cron:指定具有特定日期的cron作业。将命令格式化为minute hour day month ? year command并将其添加到您的crontab文件中。然后cron将只运行一次你的工作。使用crontab来处理您的crontab文件。 Man page for crontab

在命令:语法:at [-V] [-q queue] [-f file] [-mldbv] TIMETIME运行标准输入脚本。或者,使用-f标志在文件中运行脚本。 Man page for at

+0

谢谢,但我必须重新执行这些命令。我必须写一个脚本吗? – DamianFox

0

信息:这是我不得不重新实现一些“AT”或“的crontab”的特征的操作系统任务。

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

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

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

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