網(wǎng)絡(luò)上有各種方案解決python調(diào)用shell的解決方案,但是沒(méi)有一個(gè)完美的,以下是本人整理的一個(gè)方案,比較完美地解決了同時(shí)解決獲取返回值和返回信息。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于中大型企業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)和網(wǎng)站改版、網(wǎng)站營(yíng)銷(xiāo)服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開(kāi)發(fā)的融合,累計(jì)客戶(hù)千余家,服務(wù)滿(mǎn)意度達(dá)97%。幫助廣大客戶(hù)順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專(zhuān)注成都品牌網(wǎng)站建設(shè)和互聯(lián)網(wǎng)程序開(kāi)發(fā),在前進(jìn)的路上,與客戶(hù)一起成長(zhǎng)!
def run_linux_cmd_quiet(i_cmd, i_nohup='0'):
l_func_name=__name__+ '.' + sys._getframe().f_code.co_name
l_curTime=time.strftime('%Y%m%d_%H%M%S',time.localtime())
l_result=l_curTime+str(os.getpid())+'.log'
if i_nohup == '1':
l_cmd="nohup {cmd} > {result} 2>&1 &".format(cmd=i_cmd, result=l_result)
else:
l_cmd="{cmd} > {result} 2>&1".format(cmd=i_cmd, result=l_result)
val = os.system(l_cmd)
msg=file2List(l_result)
if 0 != val:
logger.print_error(l_func_name,common.concatString(l_cmd, 'failed.\n retCode:',val))
else:
os.system('rm -f ' + l_result)
if cfg.TRACE_FLAG == 'y':
logger.print_info(l_func_name, common.concatString(l_cmd, 'ok.\n retCode:',val))
return (val,msg)