Я создал пакет в TextMate для перезапуска процесса Supervisor, связанного с текущим проектом Django. Выполнение кода в интерпретаторе Python успешно перезапускает процесс без блокировки, однако, когда я использую его в качестве пакета TextMate (настроен на запуск при каждом сохранении файла .py), он блокирует графический интерфейс на ~ 3 секунды. Есть ли способ, которым я могу избежать этого?
Вот как выглядит код:
#!/usr/bin/env python
import os
import subprocess
import threading
projname = os.environ.get('TM_PROJECT_DIRECTORY', '').rpartition('/')[2]
def restart_proj(projname=None):
""" Restart a supervisor instance.
Assumes that the name of the supervisor instance is the basename for
TM_PROJECT_DIRECTORY.
"""
if projname:
subprocess.Popen('$HOME/.virtualenvs/supervisor/bin/' \
'supervisorctl restart {0}'.format(projname),
shell=True, stdout=open('/dev/null', 'w'))
t = threading.Thread(target=restart_proj, args=(projname, ))
t.start()