Как проверять процессы и перезапускать их в Bash

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

bashpgrepперезапуск процессов

👁 В продакшн-среде часто возникает необходимость следить за состоянием процессов. Иногда приложение может «повиснуть» или остановиться, и важно автоматически его перезапустить. Для этого можно использовать простую проверку с помощью Bash.

📝 Вот как можно создать скрипт, который будет проверять наличие процесса и перезапускать его, если он не работает:

#!/bin/bash

process_name="my-app"
if ! pgrep -x "$process_name" > /dev/null
then
  echo "$process_name не найден. Перезапускаем..."
  /path/to/my-app &
else
  echo "$process_name уже работает."
fi

📌 В этом скрипте:

  • pgrep -x "$process_name" ищет процесс с точным именем.
  • Если процесс не найден, срабатывает команда else, которая перезапускает приложение.
  • Если приложение уже работает, скрипт выводит сообщение.

❗️ Этот подход идеально подходит для автоматических проверок состояния сервисов и их перезапуска. Он может быть полезен для мониторинга и автоматизации в продакшн-среде, например, в скриптах CI/CD или на сервере с множеством сервисов.

tags: #полезно #bash #linux

❤️ @recura_tech

Фрагмент кода в тёмной теме: Bash-скрипт проверки процесса my-app через pgrep и автоматического перезапуска, логотип RECURA.
Пример кода Bash для проверки и перезапуска процесса my-app.

Читайте так же