Оболочка Python = Подпроцесс True. Открыть аргумент ключевого слова, ломающий команду mdadm

Я пытаюсь контролировать mdadm из скрипта Python, и вызов, подобный этому:

subprocess.Popen('mdadm --create /dev/md1 --raid-devices=4 /dev/md-0 /dev/md-1 /dev/md-2 /dev/md-3'.split())

mdadm потом жалуется с mdadm: You have listed more devices (5) than are in the array(4)!

Когда я использую shell=True (или же os.system), это работает просто отлично. Например:

subprocess.Popen('mdadm --create /dev/md1 --raid-devices=4 /dev/md-0 /dev/md-1 /dev/md-2 /dev/md-3', shell=True)

Почему звонок не работает без shell=True?

РЕДАКТИРОВАТЬ: Вот полная строка, которую я разделяю и передаю subprocess.Popen:

mdadm --create /dev/md10 --name /dev/md/demo --chunk=128K --level=raid6 --size=104857600 $MDADM_r6_OPT --spare-device=0 --raid-devices=8 /dev/mapper/mpathbp2 /dev/mapper/mpathbp3 /dev/mapper/mpathbp4 /dev/mapper/mpathbp5 /dev/mapper/mpathcp2 /dev/mapper/mpathcp3 /dev/mapper/mpathcp4 /dev/mapper/mpathcp5

0 ответов

Другие вопросы по тегам