Выполнение сценариев Python, таких как udev / rules.d, cron.d или /apt/source.d - PullRequest
1 голос
/ 03 февраля 2010

Я использую python для исправления системных настроек Linux-систем, распространяемых с partimage. Я хочу иметь следующую структуру скрипта Python:

/patch.d/
    10_patch_netwok.py
    20_patch_hostname.py
    ...
    50_patch_software_xyz.py

InitSystem.py

InitSytem.py должен запускать скрипты python в папке /patch.d. Следуя моей идее (мозговой штурм):

files = glob.glob("patch.d/*.py")
files.sort()
for file in files:
    execfile(file, ...)

Каков рекомендуемый способ загрузки сценариев Python и запуска их из другого сценария Python?

1 Ответ

1 голос
/ 03 февраля 2010

Сценарии Python также являются модулями Python, поэтому лучший способ загрузить и запустить их - просто импортировать их, используя

__import__('some_module')

Это будет означать, что они выполняются в одном и том же процессе.Если это нежелательно, тогда вы можете использовать поддержку многопоточности или многопроцессорности в python для запуска каждого сценария в другом потоке / процессе, чтобы избежать помех, или использовать модуль os.subprocess для выполнения системных вызовов, которыезапустить сценарии.

...