2016-12-08 2 views
0

Команда «java temp» print Hello World. но когда я пытаюсь запустить эту команду с помощью crontab, она не работает.Файл Java не запускается с использованием crontab

Я использую эту команду в кронтаб

*/2 * * * */USR/бен/Java -cp/дома/Parth/javafile/температура

Я также попробовал эту команду

*/2 * * * * корень (кд /home/parth/javafile/temp.class; Java темп)

и

*/2 * * * * корень/USR/бен/Java -cp/home/parth/javafile/temp

Но эти команды также не работают.

Я также попытался создать файл сценария .sh и поместить java-команду внутри скрипта, а затем запустить этот скрипт с помощью crontab. но это тоже не работает.

Я думаю, что я делаю что-то неправильно с командой, но я не понимаю, что именно.

+0

Где ты ожидая, что он покажет «Hello World», когда cron запустит его? –

ответ

1

Проблема в том, что оболочка вашего пользователя не выполняет команду. Команда, выполняющая задание CRON, выполняет команду. В этом случае вы никогда не увидите вывод, напечатанный на вашем терминале. Одним из вариантов является перенаправить вывод в файл, что-то вроде:

*/2 * * * * /usr/bin/java -cp /home/parth/javafile/ temp >> /path/to/log/file 2>&1 

Бит в конце 2>&1 перенаправляет стандартные ошибки в том же месте, что и стандартный вывод. Таким образом, ошибки также печатаются в файле журнала.

2 является дескриптором файла для стандартного Ошибка

> для перенаправления вывода

& является символом для дескриптора файла

1 является дескриптором файла для стандартного Out