Проверьте состояние службы Linux и запустите ее, если она остановлена с помощью скрипта Python

#python #linux

#python #linux

Вопрос:

У меня есть фиксированный список служб на сервере Linux. Я хочу проверить состояние этих служб и запустить службу, если она остановлена. Я могу сделать это с помощью сценария оболочки, но я ищу скрипт на Python для этого.

Комментарии:

1. Вы должны использовать диспетчер процессов (например, systemd , upstart , sysv ) для выполнения этих действий; это их работа.

2. Выполните итерацию по именам служб, а затем проверьте systemctl is-active <service> . Если это так, то inactive start служба?

3. Согласен, вы должны использовать shell script для этой задачи или инструменты, подобные ansible , а не Python.

4. Есть ли у вас svcadm на вашем компьютере?

5. @heemayl Я новичок и пытаюсь чему-то научиться. Есть какая-либо конкретная причина, по которой это сценарий оболочки, а не Python?

Ответ №1:

Вы можете использовать python subprocess.Popen или os.system .

Пример:

subprocess.Popen(["sudo", "service", "redis", "start"])

subprocess.Popen(["sudo", "service", "redis", "status"], stdout=subprocess.PIPE)

Вы можете прочитать стандартный вывод и проверить, остановлен ли процесс, а также увидеть статус exist.

В качестве альтернативы вы можете использовать psutil для мониторинга процессов.