Appium +のpython3自動検出および解放ポート

!は/ usr / binに/ PythonのENV - * -コーディング:UTF-8 - * - 。 @time:2019年8月6日10:38 
#1 @author:zhouyang 
#1 @file:check_port.py 
'' ' 
Appiumポート自動検出が占有され
、シャットダウン(自己、フラグ):受信とソケットにデータを送信は禁止されています。シャットダウンを使用して()関数は、双方向データ転送ソケットは一方向データ送信となることができ
(シャットダウン)どれだけ近いかソケット示す単一のパラメータが必要
なパラメータを:0:将来禁止読む; 1:将来禁止書き込みを表し、2 :それは、将来の読み取りを禁止し、書き込み

Appiumポートは自動的にポートが占有されているリリース、自動的に解除
「」「

インポートソケット
 インポートOSの

DEFのcheck_port(ホスト、ポート):
     」「」ポートが占有されているかどうかを検出するために、'「」
    #はソケットオブジェクトの作成 
    S = ソケット.socket(はsocket.AF_INET、ソケット。

    
        S.connect((ホスト、ポート))
        s.shutdown( 2 を除くMSG AS OSErrorの:
         印刷' 利用可能なポートは、S%IS 'ポート)
         印刷(MSG)
         を返す真の
     印刷" ポートは既にS%をIS使用'%の)ポート
         を返す


DEFのrelase_port(ポート):
     ' '' 指定したポート解放するために'' ' 
    、対応するPID指定されたポートを探す 
    cmd_find = ' netstatの-aonを|はfindstr%のS "ポート
     印刷(cmd_find)は、

    #は、コマンドの実行結果を返す 
    結果= os.popen、(cmd_find).read()
     印刷(結果を)

    IF STR(ポート) ' LISTENING '  結果:
         #はポートに対応したプロセスのpidを取得します。 
        I = (result.index ' LISTENING ' 
        スタート = Iがlen(+ ' リスニング' 7)
        エンド = result.index(' \ N- ' 
        のpid = 結果[スタート、終了] 

        #は、ポートは、PIDを占領閉じます
        cmd_kill = ' taskkill -f -pid%sの'PID
         プリント(cmd_kill)
        os.popen(cmd_kill)
    プリント' ポート%sが利用可能である'%のポート)


の場合 __name__ == ' __main__ ' 
    ホスト = " 127.0。 0.1 ' 
    ポート = 4725
     #のcheck_port(ホスト、ポート) 
    relase_port(ポート)

 

おすすめ

転載: www.cnblogs.com/xiuxiu123456/p/11322431.html