Мне интересно, правильно ли это выполнить системный процесс и отсоединиться от родителя, хотя он позволяет родителям выйти без создания зомби и/или убить дочерний процесс. В настоящее время я использую модуль подпроцесса и делаю это...
os.setsid()
os.umask(0)
p = subprocess.Popen(['nc', '-l', '8888'],
cwd=self.home,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
os.setsid() изменяет группу процессов, которая, как мне кажется, позволяет продолжить процесс, когда он выйдет из родителя, поскольку он больше не принадлежит к той же группе процессов.
Является ли это правильным, а также является ли это надежным способом выполнения этого?
В принципе, у меня есть утилита удаленного управления, которая обменивается данными через сокеты и позволяет запускать процессы удаленно, но я должен убедиться, что если пульт дистанционного управления умирает, запущенные процессы продолжают работать без изменений.
Я читал о двойных вилках и не уверен, что это необходимо и/или подпроцесс .POpen close_fds как-то позаботится об этом, и все, что нужно, - это изменить группу процессов?
Спасибо.
Илья