Как я могу запланировать выполнение программы?
Допустим, у меня есть небольшая 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