У меня такое ощущение, что мне не хватает очевидного, но я не справился с этим man [curl|wget]
или Google («http» делает такой плохой поисковый термин). Я ищу быстрое и грязное исправление для одного из наших веб-серверов, которое часто выходит из строя и возвращает код состояния 500 с сообщением об ошибке. Как только это произойдет, его нужно перезапустить.
Поскольку коренную причину, по-видимому, трудно найти, мы стремимся к быстрому исправлению, надеясь, что этого будет достаточно, чтобы преодолеть время, пока мы действительно не сможем это исправить (службе не нужна высокая доступность)
Предлагаемое решение заключается в создании задания cron, которое запускается каждые 5 минут, проверяя http: // localhost: 8080 / . Если это возвращается с кодом состояния 500, веб-сервер будет перезапущен. Сервер будет перезагружен через минуту, поэтому нет необходимости проверять перезапуски, которые уже запущены.
Рассматриваемый сервер представляет собой минимальную установку Ubuntu 8.04 с достаточным количеством установленных пакетов для запуска того, что ему нужно в данный момент. Для выполнения задачи в bash нет строгих требований, но я бы хотел, чтобы она работала в такой минимальной среде без установки дополнительных переводчиков.
(Я достаточно знаком со сценариями, что команды / опции для назначения кода состояния http переменной среды было бы достаточно - это то, что я искал и не мог найти.)