Рейтинг:1

Работа Cron не работает в Ubuntu 20.04.2 LTS

флаг cl

Я создал задание Cron для запуска сценария, который проверяет, запущен ли процесс, в случае, если он просто печатает, что процесс запущен, если нет, он печатает, что процесс не запущен, и перезапускает процесс:

#!/бин/ш

СЕРВИС="start_server.py"
если ps -ef | grep "$СЕРВИС" | grep -v grep >/dev/null
тогда
    эхо "start_server.py запущен"
еще
    эхо "start_server.py остановлен"
    python2.7 start_server.py &
фи

Как пользователь Ubuntu я создал следующее задание cron, запустив: кронтаб -е

* * * * * /home/ubuntu/mislaka/check_process.sh 2>&1 /home/ubuntu/mislaka/script_log.log

По какой-то причине он не работает и не записывает вывод в файл журнала.

Пробовал перезапустить службу cron, пытался создать задание cron от имени root, изменил все разрешения и пользователя, который запускает скрипт, но ничего не работает.

Сценарий, если я запускаю его сам по себе, работает так, как ожидалось.

Версия Убунту:

Нет доступных модулей LSB.
Идентификатор дистрибьютора: Ubuntu
Описание: Ubuntu 20.04.2 LTS
Релиз: 20.04
Кодовое название: фокальный

заранее спасибо

флаг uz
Jos
Ваше перенаправление неверно. Замените `2>&1` на `>>` и добавьте `2>&1` в конце.
FedKad avatar
флаг cn
Или замените `2>&1` просто на `&>>`.
флаг in
«Как пользователь Ubuntu, я создал следующее задание cron» может быть проблемой, поскольку задание cron будет выполняться только тогда, когда этот пользователь вошел в систему. Обычно такие задания выполняются как «root»: «sudo crontab -e `
флаг hr
@FedonKadifeli afaik, это будет работать, только если они установили `SHELL=/bin/bash` в crontab (по умолчанию `/bin/sh`)
флаг hr
@matigo afaik, это неправильно - cron работает как демон, и пользователям не нужно входить в систему, чтобы их crontabs можно было прочитать
Avihai avatar
флаг cl
@guiverc Извините за недостающую информацию: Нет доступных модулей LSB. Идентификатор дистрибьютора: Ubuntu Описание: Ubuntu 20.04.2 LTS Релиз: 20.04 Кодовое название: фокальный
rattkin avatar
флаг fm
Если вам нужно проверенное и надежное решение, обратите внимание на программное обеспечение для мониторинга, такое как monit. Он настраивается простым файлом ext и может наблюдать за вашим процессом и перезапускать его, отправлять электронную почту. Он также может смотреть свободное место на диске, если диск заполнен, что является источником многих возможных проблем в производстве.
Avihai avatar
флаг cl
@guiverc Я изменил название, как было предложено
Рейтинг:1
флаг it

Вакансии проходят через хрон, или же системад сценарии запуска не запускаются в той же среде выполнения, что и на вашем рабочем столе. системад сценарии запуска запускаются как корень. Ни один из ваших ДОРОЖКА изменения или другие параметры переменных среды автоматически распространяются на ваш хрон работа. Например, нет $ ДИСПЛЕЙ, поэтому программы с графическим интерфейсом нуждаются в особом подходе (читай человек).

Можно установить переменные окружения для всех своих хрон рабочие места в кронтаб файл Читать человек 5 кронтаб.

Посмотрите на результаты echo "=== id ===";id;echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== псевдоним ===";псевдоним в каждой из ваших сред.

Поскольку команда часть кронтаб строка по умолчанию интерпретируется /бин/ш, который имеет более простой синтаксис, чем /бин/баш, рекомендую иметь команда быть призывом к бить скрипт (исполняемый, смонтированный, начинается с #!/бин/баш), который настраивает среду, а затем вызывает нужную программу.

Avihai avatar
флаг cl
Я начал с /bin/bash, и это тоже не сработало.
Рейтинг:0
флаг cl

Проблема заключалась в том, что мне нужно было изменить свой сценарий и отредактировать задание cron, чтобы запустить правильный сценарий, и добавить полный путь к сценарию.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.