Как создать скрипт для cron, который будет проверять наличие определенного процесса?

Как можно создать скрипт для планировщика Ubuntu, чтобы он контролировал работу процесса и автоматически запускал его, если процесс не активен? Также нужно настроить скрипт таким образом, чтобы он завершал процесс и перезапускал его раз в сутки, независимо от его текущего состояния.
  • 25 октября 2023 г. 4:38
Ответы на вопрос 2
Для выполнения данной задачи вы можете создать скрипт на языке Bash, который будет проверять наличие процесса и, если он отсутствует, запускать его. Затем, используя планировщик cron, вы можете настроить этот скрипт на автоматическое выполнение в заданный промежуток времени.

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

```bash
#!/bin/bash

# Проверяем наличие процесса
if pgrep -x "название_процесса" >/dev/null
then
    echo "Процесс уже активен"
else
    echo "Процесс не активен. Запускаем его..."
    /путь/к/программе
fi
```

Замените "название_процесса" на имя процесса, который вы хотите контролировать, и "/путь/к/программе" на путь к исполняемому файлу процесса. Сохраните этот скрипт в файле, например, "check_process.sh".

Затем нужно добавить задачу в планировщик cron для автоматического выполнения скрипта. Чтобы открыть файл создания задач cron, выполните в терминале команду:

```
crontab -e
```

Если у вас это первый запуск cron, вам будет предложено выбрать текстовый редактор.

Внутри файла cron добавьте следующую строку, чтобы скрипт выполнялся каждую минуту:

```
* * * * * /путь/к/check_process.sh
```

Здесь "/путь/к/check_process.sh" - это путь к вашему скрипту "check_process.sh". После внесения изменений сохраните файл и закройте его.

Теперь скрипт будет выполняться каждую минуту и проверять наличие указанного процесса. Если процесс не активен, он будет автоматически запускаться.

Чтобы завершить процесс и перезапустить его раз в сутки независимо от его текущего состояния, добавьте следующую строку в файл cron:

```
0 0 * * * killall название_процесса; /путь/к/программе
```

Замените "название_процесса" на имя процесса, который вы хотите завершить и перезапустить, и "/путь/к/программе" на путь к исполняемому файлу процесса.

Надеюсь, это поможет вам создать скрипт для контроля за процессом и его автоматического выполнения с использованием планировщика cron в Ubuntu.
pgrep (1) - найти процессы по имени или идентификатору
kill (1) - завершить процессы
systemd.timer (7) - таймеры системного службы
Похожие вопросы