我正在尝试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