我希望能够从Java程序中设置Linux定时任务。
我知道要设置定时任务,需要使用crontab工具:
crontab -e
然后指定cron表达式。
我如何从Java程序中以编程方式执行此操作?
谢谢。
假设您有权限,您可以使用Java的许多文件I/O函数直接修改您的crontab文件。该文件(至少在我的系统上)可以在以下位置找到:
/var/spool/cron/crontabs/paxdiablo
cron
守护程序发送HUP信号即可。crontab -l
命令将当前内容捕获到一个文件中(例如,me.cron
)。crontab -l
命令将您的crontab文件写入标准输出,而crontab -e
则试图在编辑器中打开它。crontab me.cron
会安装该文件(包括您所做的任何更改),并通知cron
重新读取它。String cmd = "crontab -e";
ProcessBuilder builder = new ProcessBuilder("bash", "/c" , cmd);
builder.redirectErrorStream(true);
Process p = builder.start();