[packaging] GXDE K9 v1.9.1 发布:简单好用的用户态服务管理器
Tofloor
poster avatar
神末shenmo
deepin
Spark-App
Q&A Team
8 hours ago
Author

前言

在安卓 Linux 容器场景,作为一个中量级的桌面环境,更接近 Windows 的使用体验和更多的针对性场景适配让GXDE 受到了许多小小电脑用户的欢迎

能让 GXDE 运行在无 systemd 甚至无任何 initd 的环境中的秘诀,便是 gxde-k9 ,完全用bash写成的用户态服务管理器。

GXDE K9 虽然是 GXDE 桌面组件的一部分,但其广泛支持几乎所有的 Linux 发行版,甚至 Termux 环境也可以使用 (gxde-k9 --termux 即可启用支持)

GXDE K9 取名源自 Canine(警犬) ,因为最初 GXDE K9 只有 watchdog 一个功能,用于拉起并监控桌面进程。更新到 1.9.1 后,GXDE K9 的任务可观测性、配置管理与生命周期控制都得到了巨大改进,让这个面向无 systemd / 容器 / Termux 场景的轻量级用户态 watchdog,更接近日常可用的服务与定时任务管理工具。

新功能: GXDE K9 Chocker(警犬项圈):任务与配置管理工具

  • 支持类似 service 的命令行使用方式,支持 start | stop | restart | enable | disable 服务

  • 支持独立的任务日志,可以对单独的任务日志查看、导出与清理

  • 基于 whiptail / dialog 编写的终端 TUI,简单易用

  • 支持任务的启用、禁用、启动、停止、重启与状态查看

    图片.png

详细解析:Chocker:集中管理 K9 任务

新增的 gxde-k9-chocker 是 K9 的任务管理入口,可管理四类任务:

  • slimy:持续监控执行的任务,会被持续执行以执行监控
  • edging:保活型任务,配置简易的watchdog
  • shot:一次性启动任务,类似 autostart 的作用,但是随 GXDE K9 一同启动
  • timer:类 crontab 的定时任务,在无 systemd 或 cron 的环境中非常有用
    可以在脚本中使用子命令:
gxde-k9-chocker list
gxde-k9-chocker status
gxde-k9-chocker add timer --name hello --schedule '* * * * *' --command 'echo hi'
gxde-k9-chocker import slimy /path/to/service.sh --name my-service

图片.png

也可以直接使用 gxde-k9-chocker进入 TUI

图片.png

TUI 支持方向键导航、输入框、确认对话框、多选批量删除,以及可滚动查看配置和日志;若环境没有图形化终端能力,所有非交互子命令仍可正常使用。

图片.png

图片.png

更清晰、更安全的任务生命周期

v1.9.1 明确了任务“运行状态”与“启用状态”的边界:

  • enable / disable:仅通过文件后缀切换任务启用状态,不会启动或停止进程。
  • stop:仅停止关联进程,不改变任务启用状态。
  • restart:新增命令,停止后立即重新启动已启用任务。
  • remove:先安全停止关联进程,再删除任务配置。
  • status:既可查看全局概览,也可查看单个任务详情。

启用任务使用 . 后缀,禁用任务使用 ..disabled 后缀;K9 守护进程只会扫描启用任务。对于 edging / slimy,如果只执行 stop,守护进程仍可能将其拉起;要永久阻止运行,请使用 disable

timer 任务按计划由守护进程扫描,因此仅支持启用与禁用,避免手动启动或重启带来的语义混乱。

每个任务都有独立日志

K9 现在会按任务分类保存标准输出和错误输出:

~/.local/share/GXDE/gxde-k9/logs//.log

日志支持:

gxde-k9-chocker logs list
gxde-k9-chocker logs show slimy my-service
gxde-k9-chocker logs export slimy my-service ./my-service.log
gxde-k9-chocker logs clear

默认单个日志文件上限为 10 MiB;守护进程启动时会清理旧日志,便于聚焦当前运行周期的问题定位。

更顺手的命令行体验

本次还补充并优化了 Bash 自动补全:

  • 补全 Chocker 子命令及任务分类
  • 补全已启用与已禁用任务名称
  • 新增 restart 的补全支持
  • 为日志、状态、导入等命令补全对应参数
  • gxde-k9 补全日志相关选项

依赖说明

交互式 TUI 需要以下任一依赖:

# Debian / Ubuntu / GXDE
sudo apt install whiptail
# 或
sudo apt install dialog

Termux 可使用:

pkg install whiptail
Reply Favorite View the author
All Replies

No replies yet