Задать вопрос
@Nightmarr13

Скрипт запуска Postgresql в cron после старта отправляет SIGTERM. В терминале все ок. В чем проблема?

Я использую небольшой bash-скрипт для проверки статуса Postgresql и если по какой-то причине статус failed, отдается команда на start сервиса:

#!/bin/bash
if [ "$(systemctl is-active postgresql@10-main)" = "failed" ]; then
     service postgresql@10-main start
fi


При проверке в консоли все ок - останавливаю postgresql, выполняю файл скрипта - все запускается нормально.

Но когда скрипт запускается через cron (для него использую системный), то сервер стартует, но затем сразу получает сигнал на выключение.
В логах это выглядит так:
2021-12-18 08:10:04.070 MSK [18362] LOG: listening on IPv4 address "0.0.0.0", port 5432
2021-12-18 08:10:04.070 MSK [18362] LOG: listening on IPv6 address "::", port 5432
2021-12-18 08:10:04.071 MSK [18362] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-12-18 08:10:04.171 MSK [18371] LOG: database system was shut down at 2021-12-18 08:05:04 MSK
2021-12-18 08:10:04.201 MSK [18362] LOG: database system is ready to accept connections
2021-12-18 08:10:04.275 MSK [18362] LOG: received smart shutdown request
2021-12-18 08:10:04.284 MSK [18362] LOG: worker process: logical replication launcher (PID 18378) exited with exit code 1
2021-12-18 08:10:04.288 MSK [18373] LOG: shutting down
2021-12-18 08:10:04.302 MSK [18362] LOG: database system is shut down

Я сначала подумал, что процесс с чем-то конфликтует и откуда-то прилетает SIGNAL на прекращение работы, поэтому запустил утилиту killsnoop-bpfcc, вот что она показала:

61be78f04602d613480119.jpeg
Не очень понял, какая картина в итоге получается, но проверил где находятся процессы с этими PID - в папке с упомянутым выше скриптом. Другие скрипты cron были отключены в это время.

Очевидно, что проблема не в самом скрипте (который прекрасно запускается из консоли), а в работе cron, но не могу понять в чем именно, гугл не помог.
Буду рад советам.
  • Вопрос задан
  • 275 просмотров
Подписаться 1 Средний 4 комментария
Пригласить эксперта
Ответы на вопрос 1
smorman
@smorman
When In Rome do as The Romans do...
Как правило и чаще всего, ошибки в работе Cron связаны с неправильной пропиской в планировщике пути до скрипта.
Нужно прописывать абсолютно полный путь!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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