2012-05-15 179 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」,而父進程繼續。

如果我想延遲命令,我會在子進程中調用一個「睡眠」(我在幾天前向教授詢問了這個問題,他說這很好)。

但我有這個問題:這是一個有效的方法嗎?此方法是否會創建殭屍進程?