На основании приведенного ниже комментария я запустил виртуальную машину Kubuntu, и она работает, если указать bash
для использования и shell=False
. Причина указана в комментарии, но /bin/sh
имеет псевдоним dash
в Debain / Ubuntu (возможно, и в других дистрибутивах). Чтобы определить, что использует ваша система, откройте терминал и введите ls -l /bin/sh
.
A.py
proc = subprocess.Popen(['/bin/bash', '-c', 'python3 B.py'], shell=False)
Я запустил файл с python3 A.py
. Версия: Python 3.6.7.
Предыдущий ответ
У меня работает. Я думаю, возможно, вам нужно использовать python3
в вашей строке.
Я на Арке Linux и python
на самом деле python3
.
Вот что у меня есть.
A.py
proc = subprocess.Popen('python B.py', shell=True)
time.sleep(1)
proc.send_signal(signal.SIGINT)
B.py
import time
try:
while True:
time.sleep(0.25)
print('running B')
except KeyboardInterrupt:
print('bye')
Вывод:
running B
running B
running B
bye