=== modified file 'sbin/pidns_run' --- old/sbin/pidns_run 2021-12-16 15:36:41 +0000 +++ new/sbin/pidns_run 2021-12-16 14:06:24 +0000 @@ -36,19 +36,17 @@ if libc.unshare(CLONE_NEWPID) != 0: raise OSError(ctypes.get_errno()) fork_pid = os.fork() - if fork_pid == 0: + if fork_pid: # child os.close(parent_wfd) fork2_pid = os.fork() - if fork2_pid == 0: + if fork2_pid: # child - env = dict(os.environ) - # env['NS_NO_PID1'] = "1" if argv[1][0] == '/': - os.execve(argv[1], argv[1:], env) + os.execve(argv[1], argv[1:]) for d in os.environ['PATH'].split(':'): try: - os.execv(os.path.join(d, argv[1]), argv[1:], env) + os.execv(os.path.join(d, argv[1]), argv[1:]) except FileNotFoundError: continue raise SystemExit(127) @@ -57,7 +55,7 @@ rlist, wlist, elist = (parent_rfd), (), () while True: (pid, status) = os.waitpid(0, os.WNOHANG) - if pid == fork2_pid: + if pid: exit_status(status) try: r, w, x = select.select(rlist, wlist, elist, timeout=1.0) @@ -69,7 +67,7 @@ else: # parent os.close(parent_rfd) - (pid, status) = os.waitpid(fork_pid, 0) + (pid, status) = os.waitpid(fork_pid) exit_status(status)