查看: 89|回复: 1

WSL 2 后台保活实践:让 Hermes Agent 持续运行不再被终端关闭打断

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
WSL 2 作为轻量级 Hyper-V 虚拟机,其默认行为是当没有活跃的 Linux 进程或终端会话时自动关闭,以释放系统资源。这一机制对于长期运行的后台服务(如 Hermes Agent)而言,意味着一旦关闭 PowerShell 或 Windows Terminal,WSL 实例就会退出,导致服务中断。本文基于实际开发场景,提供一套低资源占用且稳定的保活方案,结合 systemd 实现服务的自动启动与持久运行。

首先理解 WSL 2 的终止条件:当虚拟机内没有运行中的 Linux 进程、没有活跃的终端连接,或超过空闲超时阈值时,WSL 2 会自动终止。常见的粗暴保活方式(如在前台执行 sleep infinity)虽然有效,但会持续占用 CPU 与内存资源,不够优雅。

推荐的最佳实践是启动一个轻量级守护进程来模拟“有进程在运行”的状态,从而阻止 WSL 自动关闭。具体方案是使用 dbus-launch 命令。核心命令如下:
  1. @start /b wsl --exec dbus-launch true
复制代码
此命令中,start /b 使得命令在后台静默运行且不弹出新窗口;--exec 参数直接执行指定命令而不启动交互式 Shell;dbus-launch true 则会启动 D-Bus Session Bus 守护进程(true 命令立即退出),但守护进程本身会持续存在,让 WSL 误以为仍有进程活动,从而保持虚拟机活跃。该方式资源占用极低,是目前最优雅的 WSL 后台保活手段。

实施步骤分为两步:创建开机自启动脚本,以及配置 systemd 管理服务。

第一步,创建开机自启动文件。按 Win + R 输入 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup 打开启动文件夹,新建一个文本文件并命名为 wslstart.cmd,内容如下:
  1. @echo off
  2. :: 保持 WSL 后台运行,供 Hermes Agent 使用
  3. start /b wsl -d Ubuntu --exec dbus-launch true
复制代码
请将 Ubuntu 替换为你实际安装的发行版名称(可通过 wsl -l -v 查看)。保存后重启电脑,WSL 将自动在后台启动并保持运行。

第二步,配置 systemd 管理服务,使 Hermes Agent 能够随 WSL 自动启动并崩溃后自动重启。WSL 2 自 2022 年起已原生支持 systemd,启用方法为编辑 /etc/wsl.conf:
  1. sudo vim /etc/wsl.conf
复制代码
在文件中添加以下内容:
  1. [boot]
  2. systemd=true
复制代码
保存后,在 Windows 中执行 wsl --shutdown 再重新启动 WSL,systemd 即可生效。接着安装 Hermes Agent 时,使用如下命令自动创建 systemd 服务:
  1. sudo hermes gateway install --system
复制代码
之后可以通过以下命令查看服务状态:
  1. sudo systemctl status hermes-gateway.service
复制代码
常用管理命令包括:查看发行版状态(wsl -l -v)、强制关闭 WSL 实例(wsl --shutdown)、启动特定发行版(wsl -d Ubuntu)。推荐使用 Windows Terminal 作为日常终端,它支持多标签页和 WSL 集成,操作更便捷。

通过上述组合方案,wslstart.cmd 配合 dbus-launch 保持 WSL 虚拟机常驻,systemd 则确保 Hermes Agent 在 WSL 内部以服务形式自动启动、崩溃后自动恢复。即使关闭所有终端窗口,甚至注销 Windows 用户,Hermes Agent 依然能在后台稳定运行。这一思路同样适用于其他需要在 WSL 2 中持续运行的后台任务或守护进程。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层

Re: WSL 2 后台保活实践:让 Hermes Agent 持续运行不再被终端关闭打断

这个方案很实用,感谢分享。我之前也试过用 sleep infinity 保活,确实太费资源了。用 dbus-launch 的思路挺巧妙,既轻量又能骗过 WSL 的检测机制。配合 systemd 管理服务也正好解决了服务随系统自启的问题,整体方案很完整。我准备按你的步骤在自己的 Ubuntu 发行版上试一下,顺便把其他几个后台脚本也这么安排上。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-5 13:04 , Processed in 0.030966 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部