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