Как я могу запланировать выполнение программы?

Допустим, у меня есть небольшая Java-программа "Hello World", скомпилированная в моем домашнем каталоге. Я могу запустить это с 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, она открывает ее в указанное время. Но с моей собственной программой он ничего не выполняет. Как я могу изменить ситуацию?

2 ответа

Решение

Что значит helloworld делать? Если это текстовое приложение, вы не увидите выходных данных (если не настроены на получение отчетов cron на локальную электронную почту). Если это приложение с графическим интерфейсом, оно не будет работать, потому что cron не может запустить приложения с графическим интерфейсом.

Поэтому попробуйте с приложением Java, которое создает файл в вашей системе (например, в /tmp) и понаблюдайте, случится ли это.

Кроме того, используйте опцию MAILTO в crontab так что вы уверены, что cron работает правильно. Уведомления по электронной почте включают выходные данные программы (например, сообщение Hello world!) и любые ошибки при запуске команд.

Попробуйте указать полный путь к файлу, например:

java /home/ward/prog/helloWorld
Другие вопросы по тегам