2016-09-06 6 views
1

прежде всего краткий обзор по моей текущей цели:управления процессом питон образуют другой питон файл

Я хочу использовать планировщик, чтобы выполнить простую Python программу каждый второй. Эта программа считывает некоторые данные и вводит результаты в базу данных. Поскольку запланированное задание будет работать в течение нескольких дней на малиновом пироге, процесс должен начинаться в фоновом режиме. Поэтому я хочу создать файл python, который может запускаться, останавливаться и получать текущий статус из фонового задания. Кроме того, должно быть возможно выйти и повторно войти в управляющий файл без остановки фонового задания.

В настоящее время я пробовал apscheduler для выполнения файла python каждую секунду. Фактическая проблема заключается в том, что я не могу получить доступ к текущему файлу python, чтобы контролировать статус, из другого внешнего файла. В целом я не нашел реального решения, как я могу управлять формой подпроцесса внешним файлом и после повторного поиска того же подпроцесса после перезапуска управляющего файла python.

EDIT:

Так в целом, насколько я понял теперь я в состоянии найти текущий процесс с его PID. С помощью этого im, способного отправить отправить terminatesignal в текущий процесс. Внутри моего запланированного файла я могу catch these signals и выключить программу обычным способом.

ответ

1

Для управления (запуск, перезапуск, остановка, расписание) использование фонового процесса subprocess. Вот example подпроцесса 'popen с таймаутом.

Для передачи некоторых данных между scheduler и background job используйте один из IPC механизмов, например сокетов.

+0

Хорошо управлять процессом Я могу использовать подпроцесс, но как я могу найти подпроцесс работы после перезапуска контроллера (mainprocess)? –

+0

Нет, подпроцесс, созданный с использованием подпроцесса python, обычно заканчивается после завершения программы управления. – AbdealiJK

+0

@VeitBjarsch вы можете использовать такие инструменты linux, как 'ps', см. [Пример] (http://stackoverflow.com/questions/2940858/kill-process-by-name). –

Смежные вопросы