成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Python中判斷subprocess調(diào)起的shell命令是否結(jié)束

Python中判斷subprocess調(diào)起的shell命令是否結(jié)束

熱門標簽:315電話機器人廣告 南京銷售外呼系統(tǒng)軟件 地圖制圖標注位置改變是移位嗎 地圖標注的意義點 上海機器人外呼系統(tǒng)哪家好 蓋州市地圖標注 房產(chǎn)電銷外呼系統(tǒng) 地圖標注微信發(fā)送位置不顯示 浙江電銷卡外呼系統(tǒng)好用嗎

前言

最近在使用subprocess遇到個問題,折騰了好半天才找到簡單的解決辦法,在這里記錄下。

環(huán)境

Python:2.7.10

庫:subprocess, logging

問題

使用subprocess的Popen類來執(zhí)行shell命令,要怎么樣才能知道命令執(zhí)行結(jié)束了,以此來執(zhí)行回調(diào)方法。

解決辦法

使用subprocess.Popen.poll方法來獲取命令的執(zhí)行情況。

poll方法的返回值有兩種情況   

1. 當命令未運行結(jié)束的時候,返回None   

2. 當命令結(jié)束時,返回命令的返回值

演示

這里使用logging模塊來輔助顯示命令執(zhí)行時間

分別使用兩種調(diào)用shell命令的方式來測試

shell=True

shell=False

完整演示

補充:system函數(shù)返回(如何判斷調(diào)用的shell命令是否執(zhí)行成功)

例:

status = system("./test.sh");

1、先統(tǒng)一兩個說法:

(1)system返回值:指調(diào)用system函數(shù)后的返回值,比如上例中status為system返回值

(2)shell返回值:指system所調(diào)用的shell命令的返回值,比如上例中,test.sh中返回的值為shell返回值。

2、如何正確判斷test.sh是否正確執(zhí)行?

僅判斷status是否==0?或者僅判斷status是否!=-1?

都錯!

3、man中對于system的說明

RETURN VALUE

The value returned is -1 on error (e.g. fork() failed), and the return

status of the command otherwise. This latter return status is in the

format specified in wait(2). Thus, the exit code of the command will

be WEXITSTATUS(status). In case /bin/sh could not be executed, the

exit status will be that of a command that does exit(127).

看得很暈吧?

system函數(shù)對返回值的處理,涉及3個階段:

階段1:創(chuàng)建子進程等準備工作。如果失敗,返回-1。

階段2:調(diào)用/bin/sh拉起shell腳本,如果拉起失敗或者shell未正常執(zhí)行結(jié)束(參見備注1),原因值被寫入到status的低8~15比特位中。system的man中只說明了會寫了127這個值,但實測發(fā)現(xiàn)還會寫126等值。

階段3:如果shell腳本正常執(zhí)行結(jié)束,將shell返回值填到status的低8~15比特位中。

備注1:

只要能夠調(diào)用到/bin/sh,并且執(zhí)行shell過程中沒有被其他信號異常中斷,都算正常結(jié)束。

比如:不管shell腳本中返回什么原因值,是0還是非0,都算正常執(zhí)行結(jié)束。即使shell腳本不存在或沒有執(zhí)行權(quán)限,也都算正常執(zhí)行結(jié)束。

如果shell腳本執(zhí)行過程中被強制kill掉等情況則算異常結(jié)束。

如何判斷階段2中,shell腳本是否正常執(zhí)行結(jié)束呢?系統(tǒng)提供了宏:WIFEXITED(status)。如果WIFEXITED(status)為真,則說明正常結(jié)束。

如何取得階段3中的shell返回值?你可以直接通過右移8bit來實現(xiàn),但安全的做法是使用系統(tǒng)提供的宏:WEXITSTATUS(status)。

由于我們一般在shell腳本中會通過返回值判斷本腳本是否正常執(zhí)行,如果成功返回0,失敗返回正數(shù)。

所以綜上,判斷一個system函數(shù)調(diào)用shell腳本是否正常結(jié)束的方法應(yīng)該是如下3個條件同時成立:

(1)-1 != status

(2)WIFEXITED(status)為真

(3)0 == WEXITSTATUS(status)

注意:

根據(jù)以上分析,當shell腳本不存在、沒有執(zhí)行權(quán)限等場景下時,以上前2個條件仍會成立,此時WEXITSTATUS(status)為127,126等數(shù)值。

所以,我們在shell腳本中不能將127,126等數(shù)值定義為返回值,否則無法區(qū)分中是shell的返回值,還是調(diào)用shell腳本異常的原因值。shell腳本中的返回值最好多1開始遞增。

判斷shell腳本正常執(zhí)行結(jié)束的健全代碼如下:

#include  stdio.h>
#include  stdlib.h> 
int main() 
{ 
    pid_t status;   
    status = system("./test.sh"); 
    if(status == -1)
    {
 printf("system error... \n");
     }
 else
 {
            if(WIFEXITED(status))
     {
                if(0 == WEXITSTATUS(status))
         {
                    printf("run  successfully... \n");
                }
  else
  {
                    printf("run failed %d \n",WEXITSTATUS(status));
                 }
             }
      else
     {
                printf("exit code %d \n",WEXITSTATUS(status));
            }
 }
    return 0;
 } 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 詳談python中subprocess shell=False與shell=True的區(qū)別
  • python3通過subprocess模塊調(diào)用腳本并和腳本交互的操作
  • python subprocess pipe 實時輸出日志的操作
  • 通過實例解析python subprocess模塊原理及用法
  • 使用python執(zhí)行shell腳本 并動態(tài)傳參 及subprocess的使用詳解
  • python中的subprocess.Popen()使用詳解
  • 解決python subprocess參數(shù)shell=True踩到的坑

標簽:赤峰 陽泉 金華 日照 臨汾 克拉瑪依 雙鴨山 貴州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python中判斷subprocess調(diào)起的shell命令是否結(jié)束》,本文關(guān)鍵詞  Python,中,判斷,subprocess,調(diào)起,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中判斷subprocess調(diào)起的shell命令是否結(jié)束》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python中判斷subprocess調(diào)起的shell命令是否結(jié)束的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲精品中文字幕有码专区| 久久久9色精品国产一区二区三区| 男女高潮又爽又黄又无遮挡| 欧美日韩国产精品一区二区不卡中文| 伊人精品视频在线观看| 亚洲一区日韩| 国产精品亚洲第一| 农村黄色一级片| 中文字幕亚洲欧洲| 91精品黄色片免费大全| 国产三级精品在线观看| 最近2019好看的中文字幕免费| 国产精品毛片va一区二区三区| 国产精品乱码久久久| 无遮挡动作视频在线观看免费入口| 亚洲久久久久久久久久久| 国产精品精品软件男同| 国产精品99久久不卡二区| 精品中文字幕在线观看| 天堂av最新在线| 久久激情五月丁香伊人| 欧美三级日韩三级国产三级| 日韩中文字幕在线播放| 亚洲精品国产精品国自产观看| 亚洲精品视频一区| 一本久道久久综合| 成人网18入口| 中文字幕在线资源| 一级片视频在线观看| 亚洲一二三在线观看| 亚洲第一二三区| 久久精品亚洲一区二区三区浴池| 精品伦理一区二区| 无码av免费一区二区三区试看| 精品福利一区二区三区| 久久久久麻豆v国产精华液好用吗| 日本xxxxxx| 国产精品高潮久久| 激情亚洲小说| 高清一区在线观看| 91精品啪在线观看国产18| 久久福利视频一区二区| 91丝袜高跟美女视频| 日本午夜大片a在线观看| 最好看的2019的中文字幕视频| 欧美激情一区二区三区全黄| 麻豆视频免费看| 少妇视频在线观看| 亚洲黄色av女优在线观看| 久久这里只有精品视频首页| 国产亚洲女人久久久久毛片| 亚洲经典一区二区| 香蕉亚洲视频| 国产96在线 | 亚洲| 熟女高潮一区二区三区| 成年人免费看的视频| 亚洲国产第一页| 国产精品嫩草在线观看| 美女做暖暖视频免费在线观看全部网址91| 国产特级aaaaaa大片| 国产精品自拍99| 色dvdxxx| 日韩欧美一区中文| 中文一区一区三区高中清不卡| 国产精品18久久久| 日韩视频免费观看高清在线视频| 天天躁日日躁狠狠躁超碰2020| 一级精品视频在线观看宜春院| 亚洲一区网站| 国产成人无码一二三区视频| 日本黄色大片在线观看| xxxxx.日韩| 一区二区三区免费在线看| 日本免费看黄色| 中文字幕9999| 啦啦啦中文高清在线视频| 激情综合婷婷| 超级白嫩亚洲国产第一| 免费在线观看毛片网站| 精品视频—区二区三区免费| 精品奇米国产一区二区三区| 久久69精品久久久久久国产越南| 亚洲最大在线视频| 国产欧美日韩成人| 最新福利小视频在线播放| 韩国视频一区二区三区| 成人乱码手机视频| 99国产欧美另类久久久精品| 久久青草视频| 日本a在线播放| 久热在线视频观看| 婷婷激情久久| 2019中文字幕在线免费观看| 成人激情文学综合网| 最新欧美精品一区二区三区| 亚洲人metart人体| 日韩黄色片在线| 欧美va在线观看| 国产麻豆剧传媒精品国产av| 国产人妖一区| 国产精品高潮呻吟久久av黑人| 欧美成人蜜桃| 人妻无码中文字幕| 国产一二区在线| 三级小说欧洲区亚洲区| 中文乱码字幕高清一区二区| 日韩理论电影中文字幕| 久久婷婷综合激情| 无码人妻丰满熟妇区bbbbxxxx| 一区二区三区四区在线观看视频| 激情网站在线观看| 精品久久久久久久大神国产| 国产中文字幕一区| 国产一区二区在线免费视频| 亚洲成人福利在线| 97成人免费视频| 有坂深雪av一区二区精品| 国产区精品视频| 精品51国产黑色丝袜高跟鞋| 97国产成人无码精品久久久| 日韩一区中文| 99久久国产综合精品女小说| 98色花堂精品视频在线观看| 香蕉人人精品| 亚洲一二三区精品| 久久成人免费日本黄色| 欧美 亚洲 视频| 国产尤物在线观看| 偷拍一区二区| 精品亚洲免费视频| 中文字幕人妻丝袜乱一区三区| 2019中文在线观看| 一区二区三区一级片| 不卡中文字幕在线| 午夜精品999| 欧美中文字幕精在线不卡| 精品91在线| 人妻丰满熟妇av无码久久洗澡| 天天av天天翘天天综合网色鬼国产| 日本不卡一区| 日韩成人av一区二区| 国产av一区二区三区| 午夜精品久久久久99蜜桃最新版| 亚洲1024| 97人人在线视频| 成人黄色免费网址| 亚洲国产精品一区二区第一页| 超碰在线免费97| 久久的色偷偷| 99爱免费视频| 亚洲精品18在线观看| 50度灰在线| 日本中文字幕在线视频| 丰满熟女人妻一区二区三| 青青草国产免费一区二区下载| 久热精品免费视频| 99视频只有精品| 国产精品欧美大片| 亚洲天堂av综合网| 视频一区二区三区免费观看| 99精品偷自拍| 欧美亚洲国产视频| 国内欧美日韩| 欧美中文在线观看国产| 欧美午夜一区二区三区| 久久―日本道色综合久久| 麻豆视频在线免费观看| 久久久精品一区二区毛片免费看| 免费观看v片在线观看| 亚洲成av人在线观看| 超碰国产精品久久国产精品99| 日本免费黄网站| 国产女人水真多18毛片18精品视频| caoporn-草棚在线视频最| 久久久com| 激情欧美亚洲| 欧美成人免费在线观看视频| 久久国产精品国产精品| 老司机av在线免费看| 鬼打鬼之黄金道士1992林正英| 国产一级二级在线观看| 母乳一区在线观看| 美女写真久久影院| 亚洲成人av动漫| 日韩一级欧洲| 手机在线免费观看av| 精品国偷自产国产一区| 亚洲九九视频| 亚洲性视频网站| 717影院理论午夜伦不卡久久| 超碰96在线| 激情aⅴ欧美一区二区欲海潮| 国产伊人久久| 精品国产1区2区3区| 91九色在线观看视频| 国产资源在线观看| 精品1区2区3区| 日韩欧美中文在线视频| 九九热线视频只有这里最精品| 免费观看的av网站| 国产高清在线一区二区| 日日夜夜中文字幕| 日干夜干天天干| 青青草原一区二区| 手机看片一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 日本高清视频在线播放| 麻豆国产欧美一区二区三区| 亚洲一区在线视频| 国产精品免费在线视频| 国产麻豆成人传媒免费观看| 男人猛进猛出女人屁股视频| 国产一区欧美| 日本不卡在线播放| 国产精品日本精品| 强乱中文字幕av一区乱码| 1769国内精品视频在线播放| 91桃色在线观看| 亚洲色图首页| 国产精品第一页在线| 亚洲成人一区在线观看| 濑亚美莉一二区在线视频| 成人性做爰片免费视频| 九九热视频在线观看| 天天爱天天色| 四虎影视2018在线播放alocalhost| 亚洲熟妇无码一区二区三区| 久久99国产精品自在自在app| 欧美另类一区二区| 77777亚洲午夜久久多人| a视频在线观看| 伦理电影国产精品| 日韩在线观看不卡| 日本一本不卡| jlzzjizz在线播放观看| 日本久久高清视频| 天堂在线视频网站| 国产精品久久天天影视| 欧美精品久久久久a| 亚洲一区在线观看免费观看电影高清| 亚洲狠狠婷婷综合久久蜜桃| 美女精品久久| 日韩影视精品| 97久久国产亚洲精品超碰热| av电影天堂一区二区在线观看| 一呦二呦三呦国产精品| 亚洲精品日韩激情在线电影| 丰满岳乱妇一区二区三区| 伊人蜜桃色噜噜激情综合| 视频在线99re| 日韩欧美有码在线| 久久理论片午夜琪琪电影网| 国产精品第157页| 日韩美女主播在线视频一区二区三区| 日韩精品电影一区二区三区| 无码国产伦一区二区三区视频| 激情综合色综合久久综合| 精品推荐国产麻豆剧传媒| 国产精品久久久久三级| 日韩免费av电影| 毛片中文在线观看| 国产精品国产高清国产| 91麻豆国产精品久久| 综合天堂av久久久久久久| 亚洲私拍视频| 亚洲国产剧情在线观看| 黄色在线观看www| 国产欧美日韩精品在线观看| 97av中文字幕| 亚洲精品高清国产一线久久| 亚洲欧美激情诱惑| 天天干天天舔| 欧美在线免费观看视频| 亚洲精品一区二区三区四区高清| 国产黄色片免费看| 欧美 日韩 激情| 亚洲午夜久久久久中文字幕久| 日韩精品在线不卡| 韩国欧美一区| 国产亚洲久一区二区| 国产特黄大片aaaa毛片| 亚洲一级片免费观看| 国产精品一区二区三区免费| 超碰超碰超碰超碰| 成年人网站在线观看视频| 成人在线免费观看黄色| 黄网站app在线观看下载视频大全官网| 无码日韩人妻精品久久蜜桃| 在线观看国产成人av片| 日本少妇xxxx动漫| 亚洲欧洲日本国产| 日本成人黄色网| 欧美日韩在线看片| 精品人伦一区二区三区| 很黄很污的网站| 国产精品视频在线免费观看| 福利一区二区三区视频在线观看| 久久久久影视| 人妻换人妻a片爽麻豆| 欧美精品momsxxx| 欧美高清videos性极品| 中文字幕理伦片免费看| 天堂网www在线观看| 小日子的在线观看免费第8集| 国产精品视频免费一区二区三区| 欧美电影一二区| 国产三级视频| 色一区在线观看| 91精品久久久久久久久久另类| 激情图片中文字幕| 国产精品99在线观看| 琪琪一区二区三区| 天天摸夜夜添狠狠添婷婷| 人妻激情偷乱视频一区二区三区| 大桥未久一区二区| 国产麻豆日韩欧美久久| 国产精品视频一二| 午夜免费福利小电影| 色综合小说天天综合网| 欧美日韩激情四射| 无人区乱码一区二区三区| 欧美日韩无遮挡| 成人av无码一区二区三区| 久久久国产成人| 久久久久久免费| 欧美性猛交xxxxx水多| 成人av综合一区| 国产传媒欧美日韩成人|