Скрипт не запускается через crontab, но работает автономно

Первое сообщение на этом форуме здесь :)Я уже видел это на форуме, но это если кронтаб запускает скрипт выдает ошибку. (Работает автономно. )

См. это мой сценарий. Это Журнал.

А вот и мой кронтаб :

*****/bin/bash /home/steam/arma3/restart.sh >> /home/steam/arma3/logs/checkonserv.log 2>&1 

Исправлена ​​ошибка "не удалось найти", но выполнение файла arma3server не работает.

0
04.13.2017, 15:23
2 ответа

Никогда не думайте, что cron будет работать так же, как запуск чего-то вручную. Если вы когда-нибудь собираетесь запускать свой сценарий в cron, убедитесь, что ваш сценарий настраивает свою среду точно так, как необходимо, и использует полные пути к командам, которые вы хотите запустить.

0
09.28.2019, 02:07

Итак, я нашел обходной путь :

  • Поместите свой скрипт в бесконечный цикл
  • Ждать 1 мин в конце скрипта (спать 1 мин )
  • Выполнить скрипт с экраном
0
09.28.2019, 02:07

Очень часто скрипт, подобный этому, сталкивается с проблемой вызова bashи sh. Короче говоря, crontabпо умолчанию соответствует тому, что явно указано в файле как :

SHELL=/bin/sh

в то время как ваша оболочка, вероятно, выполняет вызов bash.

Я бы рекомендовал :

  1. Добавление #!/bin/bashв начало вашего скрипта (, если это выбранная оболочка )
  2. Явное добавление /bin/bashв строку crontab, чтобы :

    * * * * * /bin/bash /home/steam/arma3/restart.sh >> /home/steam/arma3/logs/crontabcheck 2>&

Если ошибки сохраняются, пожалуйста, предоставьте обновление.

0
09.28.2019, 02:07
  • 1
    Я обновил свой пост, не работает @ все –  Marc Ma 12.02.2016, 17:58
  • 2
    Нам нужно будет увидеть новый вывод после изменения и использования набора -x в соответствии с рекомендациями. –  Community 12.02.2016, 18:23
  • 3
    Вывод не изменился... Я попытался установить +x в первой строке и во второй строке :http://pastebin.com/BJuJBNCH –  Marc Ma 12.02.2016, 18:44
  • 4
    Немного сложно помочь таким фрагментарным способом. Сначала переместите `#!/bin/bash `в начало скрипта. Во-вторых, порекомендуйте установить https://asciinema.org/и записать вывод вашего терминала, чтобы мы могли его увидеть, выполнив скрипт в терминале. –  Community 12.02.2016, 19:25
  • 5
    http://89.163.206.189/crontab/Первый файл показывает выполнение, а второй файл показывает сценарий перезапуска. –  Marc Ma 12.03.2016, 07:34
  • 6
    Анализ этих загрузок Unicode неудобен. Одна вещь, которую я заметил, это то, что могут быть проблемы с вашими вызовами системы счисления. Вы используете `, если ((5 <= 10 #$H && 10 #$H < 9 ))`. Попробуйте присвоить это переменной за пределами `, если `например `((curRDX= (10 #$H )))`затем проверьте с помощью `, если ((curRDX >= 5 && curRDX < 9 ))` –  Community 12.03.2016, 12:36
  • 7
    Эта часть работает ВСЕ вещи работают, но выполнение не работает : –  Marc Ma 12.03.2016, 12:55
  • 8
    Это :./arma3server -par=arma3server _запуск _параметры.txt > $logdir/$armalog1 2> $logdir/$armalog2 & –  Marc Ma 12.03.2016, 12:55
  • 9
    [так в оригинале] «Эта часть работает, ВСЕ вещи работают, но выполнение не работает» -совершенно бесполезно. Если вы так уверены, что ваша проблема заключается исключительно в этой строке, то проблема не в вашем скрипте, а в элементе `arma3server `. –  Community 12.03.2016, 13:09
  • 10
    Проблема в том, что выполнение элемента arma3server начинается как обычно, когда я запускаю скрипт вручную. –  Marc Ma 12.03.2016, 13:36

Теги

Похожие вопросы