2013-06-03 3 views
3

У меня есть исполняемый банкомат, и я написал сценарий оболочки для его выполнения. Когда я запускаю скрипт вручную, он работает нормально, но когда график, чтобы запустить его еженедельно с помощью кронтаба, он дает следующую ошибку -Сценарий оболочки не работает при выполнении cronjob, работает нормально иначе

log_process.sh: line 16: java: command not found 

Line 16 в моем сценарии оболочки -

java -jar $jar_path $logDirectory $logNamePattern $processedLogDirectory $oldResultsDirectory 2>>$log_file 1>&2 

Любые идея, почему это происходит, что она работает нормально, когда я запускаю ее вручную, но не тогда, когда ее запускает работа vrontab?

+0

какая команда вы стреляете во время работы вручную и какой при работе cron? –

+1

1. Это тот же пользователь? 2. Если да, то является ли среда такой же? Подсказка: попробуйте и «env» в cron и в командной строке – fge

+1

Где находится ваша java. Попробуйте полный путь к установке java. Например,/usr/local/bin/java -jar $ har_path ... – divaka

ответ

4

Ваше задание cron не имеет доступа к той же переменной $ PATH, которую вы, как пользователь.

Самый простой способ исправить это, чтобы открыть терминал и выполните следующую команду:

which java 

Это собирается дать вам абсолютный путь к вашей Java исполняемый файл. Например:

/opt/Oracle/Java/bin/java 

Замените команду «java» на весь путь.

Возможно, вы также захотите указать переменную JAVA_HOME в сценарии оболочки. Из вашего терминала запуска:

echo $JAVA_HOME 

Это даст вам еще один путь, как '/ Opt/Oracle/Java'. В вашем сценарии (если вы используете Баш), прежде чем выполнить команду Java, говоря:

export JAVA_HOME=/opt/Oracle/Java 

Замена «/ Opt/Oracle/Java» с выходом, что предыдущее эхо дал вам.

+0

hi..i попробовал оба варианта, но все равно такую ​​же ошибку .... любая другая идея? –

+0

Какая именно ошибка вы получаете на работу cron? – chamakits

+0

Извините .. очень плохо ... его выполнение, делая то, что вы мне сказали ... его некоторая другая проблема, о которой я не уверен ... спасибо за помощь. –

Смежные вопросы