您的位置:首页 > 房产 > 家装 > 南京网站推广费用_建设一个网站花多少钱_常见的网络营销方法有哪些_哪个公司网站设计好

南京网站推广费用_建设一个网站花多少钱_常见的网络营销方法有哪些_哪个公司网站设计好

2025/4/4 4:49:07 来源:https://blog.csdn.net/you_get_me_there/article/details/146605637  浏览:    关键词:南京网站推广费用_建设一个网站花多少钱_常见的网络营销方法有哪些_哪个公司网站设计好
南京网站推广费用_建设一个网站花多少钱_常见的网络营销方法有哪些_哪个公司网站设计好

是windows系统,要是linux就好了. 思路是这样的, 首先到早上6点整启动脚本或某个软件,然后记录下对应的pid,等到了晚上18点整的时候,自动根据pid再杀死对应进程. 

定时开启与关闭用apscheduler, 示例代码如下:

from apscheduler.schedulers.blocking  import BlockingScheduler def start_scripts():passdef kill_processes():passif __name__ == "__main__":scheduler = BlockingScheduler()# 添加定时任务(crontab格式)scheduler.add_job(start_scripts, 'cron', hour=6, minute=0   # 启动 scheduler.add_job(kill_processes, 'cron', hour=18, minute=0  # 终止 print("监控程序已启动")try:scheduler.start() except (KeyboardInterrupt, SystemExit):pass 

为了保证启动程序的时候获取到对应的真实pid, 使用subprocess依赖库

import subprocess try:subprocess.Popen(["python", script], cwd="d:/file/script/start.py",creationflags=subprocess.CREATE_NEW_CONSOLE)
except Exception as e:print(f"启动失败:{str(e)}")try:proc = subprocess.Popen(["d:/file/soft/server.exe"], cwd="d:/file/soft/")pid = str(proc.pid)with open("pid.txt", 'a') as f:         f.write(f"server.exe-pid={pid}\n")
except Exception as e:print(f"启动失败:{str(e)}")

启动脚本窗口的没有在这里获取pid, 是因为一旦开启新窗口后,通过proc.pid获取的无效,AI说是

  • 在Windows 7及更早版本中,创建新控制台时会生成conhost.exe 宿主进程
  • 返回的PID指向的是控制台宿主进程,而非实际目标进程
  • 新架构差异:Windows 8+ 采用了conhost与终端分离的新架构,而Win7使用传统模式

总之为了避免这个情况, 我在被启动的python脚本里面读取pid,使用的psutil库,如下:

import psutil current_process = psutil.Process()
pid = str(current_process.pid)
print(f"当前进程ID: {pid}")
with open("pid.txt", 'a') as f:         f.write(f"script-1-pid={pid}\n") 

这样就可以避免返回的pid异常问题了. 后期等到晚上18点的时候读取pid文件,按顺序kill即可.

当然如果希望每隔一段时间执行一次,可以这样:

def print_fun():print("执行时间:", time.asctime())scheduler.add_job(print_fun, 'interval', seconds=10)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com