#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 для мониторинга процессов.