0

重複の可能性:
タイムアウトのあるサブプロセスプロセス
を起動し、終了するまでブロックする最良の方法

「curl--user....」のようなLinuxコマンドを実行する必要があるPythonコードがあります。このコマンドを3600秒間実行する必要があります。3600秒後、「Linuxコマンドプロセス」を強制終了する必要があります。どうすればこれを行うことができますか?

def timeout_command(command, timeout):
    import os, datetime, time, signal
    start = datetime.datetime.now()
    time_pass = 0
    while (time_pass < timeout):
        process = os.system(command)
        now = datetime.datetime.now()
        time_pass = (now-start).seconds
        print time_pass

print timeout_command("curl --user...", 3600)
print "Other2"
print "Other3"

これを殺す方法についての手がかりはありますか: "process = os.system(command)"?

よろしくお願いします、

4

1 に答える 1

2

サブプロセスはエレガントな方法です。マルチプロセッシングを使用している場合(3600秒ごとに子プロセスを起動できます)、os.system( "kill -9 + multiprocessing.current_process()。pid)を使用して3600秒後に子プロセスを強制終了します

于 2012-09-19T20:20:20.753 に答える