网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息。
成都创新互联公司专注于中大型企业的成都网站制作、成都网站设计和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户千余家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!
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)