![我如何安排程序的执行?](https://linux22.com/image/1034283/%E6%88%91%E5%A6%82%E4%BD%95%E5%AE%89%E6%8E%92%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%89%A7%E8%A1%8C%EF%BC%9F.png)
假设我的主目录中编译了一个小型“Hello World”Java 程序。我可以从java helloWorld
主目录运行它,并且它可以毫无问题地执行。
现在我需要安排执行这个程序,比如说从现在起 10 分钟后。因此,我在控制台上执行以下命令:
at now+10min
warning: commands will be executed using /bin/sh
at> java helloWorld
Press CTRL+D to finish
因此,我可以通过命令看到它已正确安排at -l
。但此时什么也没有发生。
为什么?这有什么问题?因为,如果我不安排执行我自己的程序,而是安排执行 gedit 命令,它会在指定的时间打开它。但是对于我自己的程序,它不会执行任何操作。我该如何改变这种情况?
答案1
它做什么helloworld
?如果是文本应用程序,您将看不到输出(除非您设置为将 cron 报告接收至本地电子邮件)。如果是 GUI 应用程序,它将无法工作,因为cron
无法启动 GUI 应用程序。
因此,尝试使用在您的系统上创建文件的 Java 应用程序(例如,在/tmp
)并观察是否发生这种情况。
此外,请使用 MAILTO 选项以crontab
确保cron
正常运行。通知电子邮件包括程序的输出(例如消息Hello world!
)以及运行命令时出现的任何错误。
答案2
尝试提供文件的完整路径,例如:
java /home/ward/prog/helloWorld