【发布时间】:2018-12-05 21:05:54
【问题描述】:
我正在使用 Popen 远程调用脚本
s = Popen(['ssh' , ssh_argument0 , ssh_argument1 , '/tmp/remote/dude_rc_admsvr.sh %s %s' %(DomainHome , ACTIVITY)])
stdout = s.communicate()
打印标准输出
脚本没有以shell脚本中提到的状态退出,而是只打印成功或失败状态..
我想按照 shell 脚本退出状态码。 这是shell脚本
tail -Fn0 ${ADM_DOMAIN_LOG} | \
while read LOG_LINE;
do
echo ${LOG_LINE} | grep -q "${PASS_MSG}"
if [ $? = 0 ]
then
echo "${STATUS_SUCCESS}"
exit 0
elif echo ${LOG_LINE} | grep -q "${FAIL_MSG}"
then
echo "${STATUS_FAILURE}"
exit 1
elif echo ${LOG_LINE} | grep -q "${FAIL_MSG2}"
then
echo "${STATUS_FAILURE}"
exit 1
fi
done
exit
如何获取返回的状态码?
【问题讨论】:
-
但是我的shell脚本以状态码退出,为什么在Popen中使用时它不起作用
-
脚本甚至没有退出,至少应该退出
-
在这种情况下,我会说将状态写入文件,然后从那里读取,我知道这不是最好的方法,但它可以工作
-
但是脚本甚至没有退出 Popen 命令...
标签: python shell subprocess popen