定时自启动与自关闭一些python脚本

是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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42643.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【新手初学】读取服务器敏感文件数据

一、引言 想要让利用注入点让SQL语句能执行读取相关文件的操作,需要一个非常重要的条件,即在MySql数据库的配置文件my.ini中一定要有 secure file priv" " 二、读取文件配置 ①在虚拟机中查看my.ini文件中有没有secure file priv" &qu…

央视少儿APP V2.6.2

安装好软件就能直接看,界面干净,播放流畅得很。里面的内容都是经过严格筛选的,动画、纪录片、教育课程这些资源应有尽有 这款软件的画质高清到让人惊艳,就算不登录也丝毫不影响观看体验,播放的时候几乎不用缓冲&#…

mysqlworkbench导入.sql文件

1、MySQL Workbench 新建数据库 或者 在左侧导航栏的 ​Schemas 区域右键选择 ​Create Schema...输入数据库名称(例如 mydatabase),点击 ​Apply确认创建,点击 ​Finish 2、选择目标数据库 在左侧导航栏的 ​Schemas 列表中&a…

比较4点结构和4次函数

在行列可自由变换的平面上3点结构只有6个 设与之对应的函数分别是 3a1 x*x*y y*y*x 3a2 xy*y*y 3a3 x*x*y y*y*y 3a4 x*x*x y*y*x 3a5 x*x*xy*y*y 3a6 x*x*xy 用同样的办法计算4点结构的16个函数 4(4a1-1)2*3a32*3a1 4(4a2-1)3a43a33a53a1 4(4a3-1)3a23a3…

线性回归 + 基础优化算法

线性回归 线性回归是机器学习最基础的模型,也是理解后续所有深度学习的基础。 线性模型可以看做是单层神经网络。 上述有个0.5是在求导的时候可以很方便的将2消去。 实际上,这里的数据样本受限很大,比如地球上房子就那么多,肯…

邪性!Anaconda安装避坑细节Windows11

#工作记录 最近不断重置系统和重装Anaconda,配置的要累死,经几十次意料之外的配置状况打击之后,最后发现是要在在Anaconda安装时,一定要选“仅为我安装”这个选项,而不要选“为所有用户安装”这个选项。 选“仅为我安…

llamafactory微调效果与vllm部署效果不一致如何解决

在llamafactory框架训练好模型之后,自测chat时模型效果不错,但是部署到vllm模型上效果却很差 这实际上是因为llamafactory微调时与vllm部署时的对话模板不一致导致的。 对应的llamafactory的代码为 而vllm启动时会采用大模型自己本身设置的对话模板信息…

修改菜品-02.代码开发

一.Controller层 package com.sky.controller.admin;import com.sky.dto.DishDTO; import com.sky.dto.DishPageQueryDTO; import com.sky.entity.Dish; import com.sky.result.PageResult; import com.sky.result.Result; import com.sky.service.DishService; import com.sk…

探秘Transformer系列之(19)----FlashAttention V2 及升级版本

探秘Transformer系列之(19)----FlashAttention V2 及升级版本 文章目录 探秘Transformer系列之(19)----FlashAttention V2 及升级版本0x00 概述0x01 FlashAttention V21.1 动机1.2 方案1.2.1 减少冗余计算1.2.2 增加并行1.2.3 调整…

解决HuggingFaceEmbeddings模型加载报错:缺少sentence-transformers依赖包

遇到报错 报错信息: Error loading model: Could not import sentence_transformers python package. Please install it with pip install sentence-transformers. 装包信息: pip install modelscope langchain sentence_transformers langchain-huggingface on…

外星人入侵(python设计小游戏)

这个游戏简而言之就是操作一个飞机对前方的飞船进行射击,和一款很久之前的游戏很像,这里是超级低配版那个游戏,先来看看效果图: 由于设计的是全屏的,所以电脑不能截图。。。。 下面的就是你操控的飞船,上面…

游戏引擎学习第188天

回顾并计划今天的内容 原本这周的目标是进行可视化操作的尝试,但每一天都被一些棘手的bug和问题所阻碍,导致我们一直没能实现这个目标。直到今天,星期四,我们终于解决了这些问题,所有功能都能正常运行了,所…

解决 FFmpeg 使用 C/C++ 接口时,解码没有 shell 快的问题(使用多线程)

一、问题 硬件设备为香橙派 5Plus,最近需要使用硬件视频解码来加速 YOLO 的检测,shell 窗口的FFmpeg已经调通,详见文章: 编译支持 RKmpp 和 RGA 的 ffmpeg 源码_rk3588 ffmpeg mpp-CSDN博客https://blog.csdn.net/plmm__/article…

玛哈特液压式精密矫平机——以精准压力,定义金属的绝对服从

板材应力不除,良率难升。液压式精密矫平机,凭借多级液压闭环技术AI动态补偿算法,攻克0.2mm超薄钛箔至65mm装甲钢板的矫平极限,平整度精度锁定0.012mm,残余应力≤3MPa,让金属从“形似平整”迈向“分子级稳定…

食品计算—Nutrition5k: Towards Automatic Nutritional Understanding of Generic Food

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

C++11--(1)

目录 1.列表初始化 {}初始化 C98中 C11中 内置置类型和自定义类型 创建对象也适用 std::initializer_list 2.变量类型推导 auto C98 C11 decltype nullptr 3.范围for循环 4.STL中一些变化 array 1.创建和初始化 2.访问元素 ​编辑 3.修改操作 4.支持迭代器…

Tabby 一:如何在Mac配置保姆级教程(本地模型替换hugging face下载)

1. brew安装 mac需要先安装brew,如果本地已经安装过brew这一步可以忽略,遇到问题可以自己ai问 /bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 可能遇到source .zprofile失败,因为…

内网服务器无法通过公网地址访问映射到公网的内网服务

内网服务器无法通过公网地址访问映射到公网的内网服务 问题现象问题原因解决方法总结 前几天遇到一个网络问题,在这里做下记录,希望能帮助到有相同问题的朋友。 问题现象 网络拓扑如上所示,服务器1和服务器2在同一内网,网段均为1…

mac 下配置flutter 总是失败,请参考文章重新配置flutter 环境MacOS Flutter环境配置和安装

一、安装和运行Flutter的系统环境要求 想要安装并运行 Flutter,你的开发环境需要最低满足以下要求: 操作系统:macOS磁盘空间:2.8 GB(不包括IDE/tools的磁盘空间)。工具:Flutter使用git进行安装和升级。我们建议安装Xcode,其中包括git&#x…

Linux的进程信号 -- 信号产生,信号保存,信号捕捉,硬件中断,内核态和用户态,可重入函数,volatile,SIGCHLD

目录 1. 认识信号 1.1 信号的定义和基本结论 1.1.1 查看信号 1.2 技术应用角度的信号 1.2.1 一个样例 1.2.2 系统调用 signal 函数 1.3 信号的处理 2. 信号的产生 2.1 通过终端按键产生信号 2.1.1 基本操作 2.1.2 理解操作系统如何得知键盘信号 2.1.3 初步理解信号…