Шаблон, который я начал использовать с супервизором (который похож на zenbeni), заключается в использовании сценария оболочки для запуска любой программы, которую я запускаю, которая позволяет устанавливать переменные среды и т. Д.
например
#!/bin/sh
export EXAMPLE_VARIABLE=something
export PYTHONPATH=/something
export PATH=$PATH:/somewhere/else
exec python somescript.py
Важно использовать exec.Он заменяет / bin / sh исполняемой программой, а не порождает ее как дочернюю.Это означает, что вокруг нет никаких дополнительных процессов, а также сигналы работают должным образом.
(Небольшое) преимущество этого метода перед zenbeni состоит в том, что при обновлении переменных среды и т. Д. Требуется только перезапуск супервизора, т.е.не требуется перечитывать / обновлять и т. д.Это преимущество становится больше при использовании прослушивателя событий, если вы столкнулись с той же ошибкой, что и я (полный перезапуск супервизора для обновления переменных среды прослушивателя событий).