Я пытаюсь внедрить систему очередей заданий, такую как PBS крутящего момента на кластере.python Убить все подпроцессы, даже родительский вышел
Одним из требований было бы убить все подпроцессы даже после выхода родителя. Это важно, потому что, если чья-то работа не ожидает, что ее подпроцессы заканчиваются, преднамеренно или непреднамеренно, подпроцессы становятся сиротами и принимаются в процессе инициализации процесса, тогда будет сложно отследить подпроцессы и убить их.
Тем не менее, я придумал трюк, чтобы обойти проблему, магическим признаком является сродство cpu к подпроцессам, потому что все подпроцессы имеют одинаковую близость cpu с родителями. Но это не идеально, потому что сродство процессора может быть изменено намеренно.
Я хотел бы знать, есть ли что-нибудь еще, что разделяет родительский процесс и его потомками, в то же время непреложного
Вы можете использовать 'prctl()' для Linux, чтобы убить дочерние процессы] (http://stackoverflow.com/a/19448096/4279). Или [создать новый сеанс (/ группа процессов)] (http://stackoverflow.com/q/4789837/4279) – jfs