从java设置linux cron作业
我希望能够从java程序设置linux cron作业 我知道要设置cron作业,我使用crontab工具:从java设置linux cron作业,java,cron,crontab,schedule,Java,Cron,Crontab,Schedule,我希望能够从java程序设置linux cron作业 我知道要设置cron作业,我使用crontab工具: crontab -e 然后指定cron表达式 如何从java程序以编程方式执行此操作 谢谢您可以这样做: String cmd = "crontab -e"; ProcessBuilder builder = new ProcessBuilder("bash", "/c" , cmd); builder.redirectErrorStream(true); Process p = bui
crontab -e
然后指定cron表达式
如何从java程序以编程方式执行此操作
谢谢您可以这样做:
String cmd = "crontab -e";
ProcessBuilder builder = new ProcessBuilder("bash", "/c" , cmd);
builder.redirectErrorStream(true);
Process p = builder.start();
您可以(假设您有权限)使用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
,以便它重新读取该文件。您正在寻找ProcessBuilder吗?为什么重定向错误流?如果我可以写入进程的outputstream,然后再写入它?