Нет такой опции, о которой я знаю в Metacity/Marco. Существует, однако, небольшое количество опции поставляться вокруг этой проблемы.
Учитывая Ваши требования, Вашим лучшим выбором является Круг дьявола, поскольку он позволит Вам помещать окно точно, где Вы хотите его.
Я рекомендую supervisord (supervisord, отмечают точкой org), который, оказывается, записан в Python.
Вот статья для установки его с помощью диспетчера пакетов Python: Процессы Unix Стада с Супервизором.
Если Вы использовали бы об/мин, то используйте это руководство: Рабочий супервизор 3 на CentOS 5
Защищайтесь, если у Вас есть какие-либо проблемы. Это - большой инструмент, после того как Вы получаете его работа.
Я не уверен в Ваших сценариях 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
Установка monit. Это легко настроить и может проверить на процессы и перезапустить их, если они не там.