Python应用
我的Python 3.6.8应用在CentOS 7.6上运行,并且:
子过程
Popen命令
我使用此命令从主线程启动子进程:
launch_cmd = "{} {} {} {}".format(path_of_compiled_binary, opt1, opt2, opt3)
self.myproc = subprocess.Popen(launch_cmd.split(), shell=False,
cwd=self.testing_dir, close_fds=True, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env,
bufsize=1, universal_newlines=True, preexec_fn=self.ignore_sigint)
写命令
我尝试给子流程命令提供
cmd = self.generate_cmd()
cmd = cmd + "\n"
bytes_sent = self.myproc.stdin.write(cmd)
self.myproc.stdin.flush()
文件描述符
`
lr-x------. 1 demo demo 64 Jun 5 10:44 0 -> pipe:[58635]
l-wx------. 1 demo demo 64 Jun 5 10:44 1 -> pipe:[58636]
l-wx------. 1 demo demo 64 Jun 5 10:44 2 -> pipe:[58636]
lr-x------. 1 demo demo 64 Jun 5 10:44 3 -> /dev/null
lr-x------. 1 demo demo 64 Jun 5 10:44 4 -> path_of_compiled_binary
lr-x------. 1 demo demo 64 Jun 5 10:44 5 -> /dev/tty
l-wx------. 1 demo demo 64 Jun 5 10:44 6 -> /dev/tty
lrwx------. 1 demo demo 64 Jun 5 10:44 7 -> socket:[59509]
lrwx------. 1 demo demo 64 Jun 5 10:44 8 -> /dev/ttyACM0
lr-x------. 1 demo demo 64 Jun 5 10:44 9 -> /tmp/par-64656d6f/temp-15579/inc/lib/PDL/IO/Pic.pm
从tty而不是stdin读取子过程