# 自动开关机助手 **Repository Path**: deepin20/auto_power_scheduler ## Basic Information - **Project Name**: 自动开关机助手 - **Description**: 自动开关机助手:一款专为 Linux 桌面环境(统信UOS / Deepin / Ubuntu)设计的定时关机和唤醒工具,提供图形界面和命令行双重操作方式。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-11 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自动开关机助手 [![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Platform: Linux](https://img.shields.io/badge/platform-Linux-orange.svg)](https://www.linux.org/) > 一款专为 Linux 桌面环境(统信UOS / Deepin / Ubuntu)设计的定时关机和唤醒工具,提供图形界面和命令行双重操作方式。 --- ## 📖 简介 **自动开关机助手**让您轻松设置: - **定时自动关机**(每天重复或一次性) - **定时自动唤醒**(从挂起/休眠状态恢复) 它支持**星期选择**、**多种挂起模式**(内存/硬盘/冻结),并提供了**图形界面 (GUI)** 和**命令行 (CLI)** 两种操作方式,满足不同用户习惯。 本工具专为 **Deepin 25 不可变系统** 优化,安装后可直接通过开始菜单启动,无需输入密码(已配置 sudo 无密码运行)。 --- ## ✨ 功能特性 - ✅ **定时关机** – 支持每天重复或一次性任务,可自定义星期几执行 - ✅ **定时唤醒** – 在指定时间自动从挂起/休眠中恢复,支持 `mem`、`disk`、`freeze` 三种模式 - ✅ **图形界面** – 基于 Tkinter,操作直观,实时显示状态日志 - ✅ **命令行工具** – 提供完整的 CLI 子命令,适合脚本化和远程管理 - ✅ **配置持久化** – 自动保存您的设置,下次启动自动加载 - ✅ **日志记录** – 所有操作记录到 `logs/app.log`,方便排查问题 - ✅ **开机自启** – 支持安装桌面自启动项 - ✅ **一键安装** – 提供 DEB 包,适配 Deepin 25,安装即用 --- ## 📦 安装 ### 方法一:DEB 包安装(推荐) 从 [Releases](../../releases) 下载最新 `.deb` 包,然后执行: ```bash sudo dpkg -i auto-power-scheduler_2.0.0_all.deb ``` 若提示依赖缺失,运行: ```bash sudo apt install -f ``` 安装后,您可以从开始菜单启动“自动开关机助手”,或在终端运行 `auto-power-scheduler`。 ### 方法二:从源码运行 ```bash git clone https://github.com/your-repo/auto_power_scheduler.git cd auto_power_scheduler # 安装依赖(无额外依赖,仅需 Python 标准库) # 以 root 权限运行 sudo python3 auto_power_scheduler.py ``` > 注意:源码方式需要手动安装依赖:`python3-tk`、`at`、`util-linux`(提供 `rtcwake`)。 --- ## 🚀 使用方法 ### 图形界面(GUI) 启动后,界面分为“自动关机”和“自动唤醒”两个区域: - **时间**:输入 24 小时制时间(如 `22:30`) - **重复**:勾选“每天重复”为周期任务,取消则为一次性任务(使用 `at` 调度) - **星期**:选择希望执行任务的具体星期几(仅重复任务有效) - **挂起模式**(唤醒区域):`mem`(挂起到内存)、`disk`(休眠到硬盘)、`freeze`(冻结进程) - **操作按钮**: - 设置重复任务 / 一次性任务 - 取消当前任务 - **状态栏**:显示操作日志和时间戳 ### 命令行(CLI) 主程序 `auto_power_scheduler.py` 支持多种子命令(需 root 权限): ```bash # 启动图形界面(无参数时默认启动 GUI) sudo auto-power-scheduler # 设置重复关机(每天 23:00,仅工作日) sudo auto-power-scheduler shutdown 23:00 --weekdays 1-5 # 设置一次性关机(明天 18:00) sudo auto-power-scheduler shutdown 18:00 --once # 取消关机任务 sudo auto-power-scheduler shutdown --cancel # 设置重复唤醒(每天 07:30,挂起到内存,周一至周五) sudo auto-power-scheduler wakeup 07:30 --mode mem --weekdays 1-5 # 设置一次性唤醒(使用 at) sudo auto-power-scheduler wakeup 08:00 --mode disk --once # 取消唤醒任务 sudo auto-power-scheduler wakeup --cancel # 取消所有 at 一次性任务(慎用) sudo auto-power-scheduler cancel-at # 安装/移除开机自启 sudo auto-power-scheduler install-autostart sudo auto-power-scheduler remove-autostart ``` --- ## 📂 文件结构 安装后,程序文件位于 `/opt/auto_power_scheduler`: ``` /opt/auto_power_scheduler/ ├── auto_power_scheduler.py # 主入口 ├── power_scheduler/ # 核心模块 │ ├── core.py # 调度逻辑 │ ├── config.py # 配置管理 │ ├── gui.py # 图形界面 │ └── utils.py # 工具函数 ├── resources/icons/ # 图标资源 ├── run.sh # 启动脚本(用于桌面快捷方式) ├── logs/ # 运行日志(自动生成) └── config/ # 用户配置(自动生成) ``` 快捷方式: - 命令行链接:`/usr/local/bin/auto-power-scheduler` → `/opt/auto_power_scheduler/run.sh` - 桌面文件:`/usr/share/applications/auto-power-scheduler.desktop` --- ## ❓ 常见问题 (FAQ) ### 1. 为什么需要 root 权限? 因为设置定时任务需要修改系统 crontab 和 RTC 唤醒,这些操作需要管理员权限。 ### 2. 安装后从开始菜单启动没有任何反应? 请确保您的用户属于 `sudo` 组(默认如此),并且已正确安装。若仍不行,尝试在终端执行 `sudo /opt/auto_power_scheduler/run.sh` 查看错误输出。 ### 3. 唤醒任务不生效? - 检查系统是否已进入挂起/休眠状态(唤醒任务不会自动让电脑挂起,它只负责在设定的时间唤醒) - 确保硬件支持 RTC 闹钟唤醒(大多数现代电脑都支持) - 查看 `/var/log/syslog` 或 `logs/app.log` 排查错误 ### 4. 如何完全卸载? ```bash sudo dpkg -r auto-power-scheduler # 手动删除残留配置文件(可选) sudo rm -rf /opt/auto_power_scheduler ``` ### 5. 可以设置非每日重复的任务吗? 可以。在图形界面中取消“每天重复”复选框,或使用 CLI 的 `--once` 参数,任务将使用 `at` 命令一次性调度。 ### 6. 支持哪些 Linux 发行版? 已在 Deepin 25、UOS、Ubuntu 20.04+ 上测试,只要支持 Python 3、Tkinter、`at` 和 `rtcwake` 即可运行。 --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request。开发前请确保代码风格符合 PEP 8。 ### 开发环境 ```bash git clone ... cd auto_power_scheduler # 创建虚拟环境(可选) python3 -m venv venv source venv/bin/activate # 安装开发依赖(如有) ``` ### 打包 DEB 项目根目录下的 `build_deb.sh` 脚本可一键生成 DEB 包,详见 [打包指南](docs/INSTALL.md)。 --- ## 📄 许可证 本项目采用 [MIT 许可证](LICENSE),可以自由使用、修改和分发。 --- ## 📮 联系方式 如有问题或建议,请通过 [Issues](../../issues) 反馈。 --- **祝您使用愉快!** 🎉