Python 用一个脚本来控制另一个脚本的运行、关闭
生活随笔
收集整理的這篇文章主要介紹了
Python 用一个脚本来控制另一个脚本的运行、关闭
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、一開始按照網上教程,使用subprocess來實現另外一個腳本的運行和關閉,但是這個腳本在連續運行的時候不容易返回數據,判斷腳本運行的狀態
2、使用笨方法,用os.system運行腳本,使用os.kill(pid)殺死進程的方法關閉腳本的運行,這樣就可以實現在一個腳本里面控制其他腳本的開啟和運行了。當前這個方法在linux系統,如ubuntu18.04中跑,不存在問題
代碼樣例:
需要運行的腳本---run.py
import time count=0 con=True while con:now time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))count+=1print(count,now_time)time.sleep(1)寫的控制運行腳本的腳本代碼---control.py
import os,signal import timedef get_now_time():# 獲取當前的本地時間now_time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))return now_timedef kill(pid):print('pid',pid)# pgid=os.getpgid(pid)# print(pgid)# a = os.killpg(pgid,signal.SIGKILL)a = os.kill(pid,signal.SIGKILL)print('已殺死pid為%s的進程, 返回值是:%s' % (pid, a))def kill_target(target):cmd_run="ps aux | grep {}".format(target)out=os.popen(cmd_run).read()for line in out.splitlines():print(line)if '另外判斷殺死進行所在的路徑' in line:pid = int(line.split()[1])kill(pid) # 建議在運行命令后面加上&符號,似乎是以另一個線程跑 os.system('python ./run.py &') while True:# 關閉if some_condition:print('暫停')kill_target('run.py')# 打開if some_else_condition:os.system('python ./run.py &')?
總結
以上是生活随笔為你收集整理的Python 用一个脚本来控制另一个脚本的运行、关闭的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql多字段修改update_MyS
- 下一篇: 百度云链接使用迅雷下载时提示有误的问题解