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

Нет такой опции, о которой я знаю в Metacity/Marco. Существует, однако, небольшое количество опции поставляться вокруг этой проблемы.

  • Compiz: существует Плагин Места, доступный, который позволяет Вам определять алгоритм размещения и местоположения.
  • Круг дьявола 2: преемник Круга дьявола позволяет Вам соответствовать окнам и устанавливать определенные свойства окна (размер, местоположение, способности и другие).
  • Другой WM: Вы могли использовать другой WM, который уже позволяет Вам настраивать подобное поведение, f.e. Пила-рыба.

Учитывая Ваши требования, Вашим лучшим выбором является Круг дьявола, поскольку он позволит Вам помещать окно точно, где Вы хотите его.

1
27.12.2013, 01:32
3 ответа

Я рекомендую supervisord (supervisord, отмечают точкой org), который, оказывается, записан в Python.

Вот статья для установки его с помощью диспетчера пакетов Python: Процессы Unix Стада с Супервизором.

Если Вы использовали бы об/мин, то используйте это руководство: Рабочий супервизор 3 на CentOS 5

Защищайтесь, если у Вас есть какие-либо проблемы. Это - большой инструмент, после того как Вы получаете его работа.

2
27.01.2020, 23:17

Я не уверен в Ваших сценариях Python, но приложение передачи включает init.d сервис, который необходимо запускать вместо того, чтобы делать что-то пользовательское, такое как запуск его через crontab запись.

Можно проверить, чтобы видеть, настроена ли услуга передачи для запуска в каком-либо из runlevels системы.

Пример

$ chkconfig --list | grep transm
transmission-daemon 0:off   1:off   2:off   3:off   4:off   5:off   6:off

Если они прочь затем, эй может изменить их так, чтобы они запустили на перезагрузку как так:

$ sudo chkconfig --level 345 transmission-daemon on

Теперь, когда мы проверяем, что необходимо видеть что его настроенный для запуска на runlevels 3,4, и 5.

$ sudo chkconfig --list | grep transm
transmission-daemon 0:off   1:off   2:off   3:on    4:on    5:on    6:off

Это будет заботиться о запуске его следующий раз, когда Вы перезагружаете. Для запуска его теперь, не имея необходимость перезагружать систему, можно сделать так как это:

$ sudo /etc/init.d/transmission-daemon start
Starting transmission-daemon:                              [  OK  ]
$

Другие сценарии

Если Вы хотите удостовериться, что сценарии Python не ложатся спать, можно создать другую crontab запись, которая периодически проверяет, чтобы видеть, работают ли они, и если не запускают их. Или Вы могли отказаться @reboot запись crontab все вместе и просто имеют единственную crontab запись, которая периодически проверяет, работают ли они, и перезапускают их, если они умирают.

Пример

Под /etc/cron.d можно создать файл, chkr.cron, как это:

*/5 * * * * root /usr/local/bin/chkr.bash

Затем создайте сценарий /usr/local/bin/chkr.bash который был бы похож на это.

#!/bin/bash

pgrep -f "python default.py"       || python default.py
pgrep -f "python MonitorService.py || python MonitorService.py
3
27.01.2020, 23:17

Установка monit. Это легко настроить и может проверить на процессы и перезапустить их, если они не там.

0
27.01.2020, 23:17

Теги

Похожие вопросы