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