一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Mac如何取消通过Python脚本运行的关机程序

时间:2026-08-23 07:04:48 编辑:袖梨 来源:一聚教程网

立即在终端输入sudo shutdown -c取消倒计时关机,成功后显示“Shutdown cancelled”;若存在pmset重复任务,需再执行sudo pmset repeat cancel清除。

Mac因Python脚本执行了os.system("sudo shutdown -h +10")subprocess.run(["sudo", "shutdown", "-h", "+5"])等命令而进入倒计时关机状态,必须立即中止该计划,否则剩余时间归零即触发不可逆关机。

用终端命令即时取消Python触发的关机任务

这一步操作起来很简单,直接在终端里输入一条指令就能撤回已提交的关机请求。

打开“终端”(位于“应用程序→实用工具”),输入:sudo shutdown -c,然后按回车。

系统会要求输入管理员密码——注意:输入时屏幕不显示任何字符,这是正常的安全机制,输完直接按回车即可。

执行成功后,终端将返回提示“Shutdown cancelled”,同时右上角不再弹出倒计时通知,原定关机任务彻底失效。

检查并清除可能残留的pmset重复关机计划

某些Python脚本会调用subprocess.run(["sudo", "pmset", "repeat", "shutdown", "at", "23:00"])设置持久化定时关机,这类任务不会被shutdown -c清除,必须单独处理。

在终端中运行:pmset -g sched,查看输出中是否有类似shutdown at的条目。

如果存在,说明有后台持久化关机任务仍在运行,必须手动清除:sudo pmset repeat cancel,回车并输入密码确认。

再次运行pmset -g sched,输出应为空或仅显示“Scheduled power events:”,表示所有重复关机计划已清空。

定位并终止正在运行的关机相关Python脚本进程

第一步:确认脚本是否仍在后台运行。打开终端,执行:ps aux | grep -E ".py|shutdown" | grep -v grep

第二步:从输出中找到含shutdown参数或明显关机逻辑的Python进程行,记下最左侧的PID(如82417)。

第三步:执行kill 82417;若进程未退出,改用kill -9 82417强制终止。-9信号不可被捕获或忽略,会立刻结束进程,但可能导致脚本中未完成的清理动作丢失

第四步:为防漏网之鱼,再执行一次killall -q python3 python,静默终止所有用户级Python解释器实例。

排查并禁用Python脚本中的自动关机逻辑

方法一:检查你最近运行过的.py文件

用文本编辑器打开疑似脚本(如auto_shutdown.pycleaner.py),搜索关键词:shutdownsubprocessos.systemos.popen,定位到调用系统关机命令的行,直接注释或删除整行。

方法二:检查LaunchAgents中由Python启动的守护脚本

按Shift + Command + G打开访达路径:~/Library/LaunchAgents/,查找名称含shutdownpoweroffauto或你脚本名缩写的.plist文件,直接移至废纸篓。

方法三:禁用可疑自动化工具的关机插件

如果你使用过Homebrew安装的自动化工具(如watchexecentr配合关机命令)、或通过pip install安装的第三方调度库(如scheduleAPScheduler),请检查其配置文件或启动脚本中是否嵌入了关机动作,关闭对应功能开关。

热门栏目