Мой скрипт для запуска сервера Rails не работает, когда я использую crontab. У меня есть сценарий для отслеживания того, работает ли Puma или нет, и последующего запуска сервера Rails в производство. Когда я выполняю его вручную, сервер Rails запускается без проблем, но когда сценарий запускается через crontab, сервер не запускается.
script.sh
APP_DIR="/home/dev/odev/"
cd "$APP_DIR"
COMMAND_TO_RUN="nohup rails s -e production -p 3333"
LOG_FILE="/var/log/monitoraPuma.log"
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE"
}
main() {
ps ax | grep puma | grep 3333 | grep -v grep > /dev/null 2>&1
GREP_EXIT_STATUS=$?
case $GREP_EXIT_STATUS in
0)
log_message "Puma on OK"
;;
1)
log_message "Puma caiu - executing command"
eval "$COMMAND_TO_RUN &"
COMMAND_EXIT_STATUS=$?
if [ $COMMAND_EXIT_STATUS -eq 0 ]; then
log_message "Command executed successfully"
else
log_message "Command failed with exit status $COMMAND_EXIT_STATUS"
fi
;;
2)
log_message "Error occurred while running grep"
exit 1
;;
esac
}
main
exit 0
Я также пытался запустить сервер Rails с помощью разных команд, таких как Bundle Exec Rails Server, но получил то же самое.
/etc/crontab
*/1 * * * * root /bin/bash /home/dev/odev/monitorPuma.sh
Подробнее здесь: https://stackoverflow.com/questions/797 ... se-crontab