4

我希望能够从 java 程序设置 linux cron 作业。

我知道要设置一个 cron 作业,我使用 crontab 工具:

crontab -e

然后指定 cron 表达式。

我如何从 Java 程序以编程方式执行此操作?

谢谢

4

2 回答 2

1

您可以(假设您有权限)使用 Java 的许多文件 I/O 函数直接修改您的 crontab 文件。该文件(至少在我的系统上)可以在以下位置找到:

/var/spool/cron/crontabs/paxdiablo

(对于用户paxdiablo)。只需对该文件进行任何更改,然后向cron守护程序发送 HUP 信号。

但是,直接编辑该文件是不受欢迎的,实际上它可能会受到保护。

正确执行此操作,您可以使用该crontab -l命令将当前内容捕获到文件(例如,me.cron)。该crontab -l命令将您的 crontab 文件写入标准输出,crontab -e这与尝试在编辑器中显示它不同。

然后,您可以使用任何您不想修改的方式来修改文件(它是您的,因为您创建了它)。

然后,运行crontab me.cron将安装该文件(以及您所做的任何更改)并通知cron它以重新读取它。

于 2013-11-13T07:42:00.187 回答
0

你可以这样做:

String cmd = "crontab -e";
ProcessBuilder builder = new ProcessBuilder("bash", "/c" , cmd);
builder.redirectErrorStream(true);
Process p = builder.start();
于 2013-11-13T07:39:07.887 回答