программное выполнение и завершение длительного пакетного процесса в python

Я искал способ запустить и завершить длительные «пакетные задания» в Python. Сейчас я использую «os.system ()» для запуска длительного пакетного задания внутри каждого дочернего процесса. Как вы, возможно, догадались, «os.system ()» порождает новый процесс внутри этого дочернего процесса (внучатый процесс?), Поэтому я не могу убить пакетное задание из родительского процесса. Для некоторой визуализации того, что я только что описал:

Main (grandparent) process, with PID = AAAA
          |
          |------> child process with PID = BBBB
                         |
                         |------> os.system("some long-running batch file)
                                  [grandchild process, with PID = CCCC]

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

У меня вопрос, есть ли способ запустить длительное пакетное задание внутри дочернего процесса и возможность убить это пакетное задание, просто завершив дочерний процесс? для запуска длительного пакетного задания внутри каждого дочернего процесса. Как вы, возможно, догадались, «os.system ()» порождает новый процесс внутри этого дочернего процесса (внучатый процесс?), Поэтому я не могу убить пакетное задание из родительского процесса. Для некоторой визуализации того, что я только что описал:

Main (grandparent) process, with PID = AAAA
          |
          |------> child process with PID = BBBB
                         |
                         |------> os.system("some long-running batch file)
                                  [grandchild process, with PID = CCCC]

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

У меня вопрос, есть ли способ запустить длительное пакетное задание внутри дочернего процесса и возможность убить это пакетное задание, просто завершив дочерний процесс? для запуска длительного пакетного задания внутри каждого дочернего процесса. Как вы, возможно, догадались, «os.system ()» порождает новый процесс внутри этого дочернего процесса (внучатый процесс?), Поэтому я не могу убить пакетное задание из родительского процесса. Для некоторой визуализации того, что я только что описал:

Main (grandparent) process, with PID = AAAA
          |
          |------> child process with PID = BBBB
                         |
                         |------> os.system("some long-running batch file)
                                  [grandchild process, with PID = CCCC]

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

У меня вопрос, есть ли способ запустить длительное пакетное задание внутри дочернего процесса и возможность убить это пакетное задание, просто завершив дочерний процесс? Какие альтернативы os.system () я могу использовать, чтобы убрать пакетное задание из основного процесса?

Спасибо !!

5
задан skuleguy 9 September 2010 в 20:50
поделиться