Python スクリプトがあり、60 秒の実行後に作業を停止するか、プロセスを強制終了したいと考えています。
仕事を止めたり、プロセスを殺したり、死んだりするだけではありません。
このための良いリファレンスが見つかりません。
PS:Pythonスクリプト自体を強制終了します(スクリプトの最初の行を含むタイマーのように、スクリプトを一定時間後に強制終了します)
P.S2:Windowsを使用していて、それを.exeにコンパイルしたい
P.S3:Pythonはバージョン2.7です
Python スクリプトがあり、60 秒の実行後に作業を停止するか、プロセスを強制終了したいと考えています。
仕事を止めたり、プロセスを殺したり、死んだりするだけではありません。
このための良いリファレンスが見つかりません。
PS:Pythonスクリプト自体を強制終了します(スクリプトの最初の行を含むタイマーのように、スクリプトを一定時間後に強制終了します)
P.S2:Windowsを使用していて、それを.exeにコンパイルしたい
P.S3:Pythonはバージョン2.7です
これはどう?
import os, sys
import threading
pid = os.getpid()
def quit_system():
os.system('kill %d'%pid)
t = threading.Timer(5.0, quit_system)
t.start()
while(True):
1 + 1
*nix では、目覚まし時計を使用できます。
import signal
signal.alarm(TIME_TO_DIE)
# your code goes on
Windows では、ジョブをデーモン スレッドとして開始し、メイン スレッドが 60 秒間スリープしてから終了することができます。例(Windowsではテストされていません):
from time import sleep
from threading import Thread
thrd = Thread(target=you_function_to_run)
thrd.daemon = True
thrd.start()
sleep(60)
Linux を使用している場合は、これを試すことができます。
(cmdpid=$BASHPID; (sleep 60; kill $cmdpid) & exec YOUR_COMMAND)
たとえば、script.py という名前のプログラムを実行する場合:
(cmdpid=$BASHPID; (sleep 60; kill $cmdpid) & exec python script.py)