1 Star 0 Fork 0

Pency/cursor-auto-free

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
exit_cursor.py 2.15 KB
一键复制 编辑 原始数据 按行查看 历史
ccz 提交于 2025-01-09 18:53 +08:00 . feat: 增加退出cursor
import psutil
from logger import logging
import time
def ExitCursor(timeout=5):
"""
温和地关闭 Cursor 进程
Args:
timeout (int): 等待进程自然终止的超时时间(秒)
Returns:
bool: 是否成功关闭所有进程
"""
try:
logging.info("开始退出Cursor...")
cursor_processes = []
# 收集所有 Cursor 进程
for proc in psutil.process_iter(['pid', 'name']):
try:
if proc.info['name'].lower() in ['cursor.exe', 'cursor']:
cursor_processes.append(proc)
except (psutil.NoSuchProcess, psutil.AccessDenied):
continue
if not cursor_processes:
logging.info("未发现运行中的 Cursor 进程")
return True
# 温和地请求进程终止
for proc in cursor_processes:
try:
if proc.is_running():
proc.terminate() # 发送终止信号
except (psutil.NoSuchProcess, psutil.AccessDenied):
continue
# 等待进程自然终止
start_time = time.time()
while time.time() - start_time < timeout:
still_running = []
for proc in cursor_processes:
try:
if proc.is_running():
still_running.append(proc)
except (psutil.NoSuchProcess, psutil.AccessDenied):
continue
if not still_running:
logging.info("所有 Cursor 进程已正常关闭")
return True
# 等待一小段时间再检查
time.sleep(0.5)
# 如果超时后仍有进程在运行
if still_running:
process_list = ", ".join([str(p.pid) for p in still_running])
logging.warning(f"以下进程未能在规定时间内关闭: {process_list}")
return False
return True
except Exception as e:
logging.error(f"关闭 Cursor 进程时发生错误: {str(e)}")
return False
if __name__ == "__main__":
ExitCursor()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/pencynobug/cursor-auto-free.git
git@gitee.com:pencynobug/cursor-auto-free.git
pencynobug
cursor-auto-free
cursor-auto-free
main

搜索帮助