Ниже приведен код из написанной мной программы на Python, которая управляет томами Solaris Volume Manager (SVM) в системах Solaris 10. Он использует тот же подход, описанный ранее, но добавляет в p.communicate (). Обратите внимание, что в этом случае вывод stderr перенаправляется на стандартный вывод, потому что в этом случае не было необходимости различать сообщения об ошибках и нормальный вывод.
# Constants
DATADIR="/etc/lvm"
METASTAT_CMD="/usr/sbin/metastat"
MD_CF = DATADIR + "/md.cf"
def check_svm_volume_exists():
# Check to see if any SVM volume(s) exist or not. If none exist, exit.
syscmd = " ".join([METASTAT_CMD, "-p", ">", MD_CF])
p = subprocess.Popen(syscmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out_data, err_data = p.communicate()
if out_data == "":
return out_data
else:
print("No Solaris Volume Manager volume(s) appear to be configured. Exiting.")
sys.exit(1)