HELLO NAS BLOG
上班摸鱼神器!在NAS部署 genact,让终端看起来很忙的样子
genact 是一款有趣的命令行模拟工具,可以模拟编译、下载、内存转储等忙碌场景。本文介绍如何在 NAS 上通过 Docker Compose 部署 genact,并使用 SSH 在终端运行,轻松让命令行看起来很忙。
点赞 + 关注 + 收藏 = 学会了
💡整理了一个 NAS 专属玩法专栏,感兴趣的工友可以戳这里关注 👉 《NAS邪修》
genact 是一个有趣的命令行小工具,可以在终端里模拟编译、下载、内存转储等“忙碌”场景。它不会真的执行这些耗时任务,适合录屏、演示,或者单纯让终端看起来热闹一点。也非常适合程序员上班摸鱼假装很忙😊
本文以绿联 NAS 为例,用 Docker Compose 部署,并介绍基础用法。
1、部署方法
打开绿联 NAS 的「文件管理」应用,在 docker 文件夹中新建一个 genact 文件夹,用于存放项目配置。

打开「Docker」应用,切换到「项目」面板并点击「创建」,按下面的信息填写:
- 项目名称:
genact - 存放路径:选择刚才创建的
/docker/genact

在 Compose 配置中粘贴以下内容:
services:
genact:
image: svenstaro/genact:latest
container_name: genact
stdin_open: true
tty: true
restart: "no"
点击创建或部署,等待项目启动。在「容器」面板中看到 genact 状态为“运行中”,就说明部署完成。这个项目不需要映射端口,也不需要挂载数据目录。

需要注意,genact 是命令行程序,不提供 NAS 网页服务,所以部署后没有 NAS_IP:端口 页面可以打开。可以在 Docker 的容器日志中查看后台输出;如果想在自己电脑的终端里实时看到效果,继续按下面的方法操作。
接下来,在电脑通过 SSH 连接 NAS 的步骤不展开说明,推荐按照这篇文章操作:SSH 连接绿联 NAS。
连上 NAS 后,执行:
sudo docker exec -it genact /app/genact
如果提示输入密码,输入 NAS 账户密码即可。输入时终端不会显示字符,这是正常现象。
输入完密码后,会看到当前 SSH 终端启动一个 genact,让模拟输出直接显示在电脑终端中。

genact 进阶玩法
其实 genact 还有很多配置项可以玩,这是 genact 的仓库,里面写了各个参数的玩法。
https://github.com/svenstaro/genact
genact 支持通过参数选择模拟场景、调节速度和设置开场输出。
参数前的短写和长写效果相同,例如 -m 等同于 --modules,-s 等同于 --speed-factor。
-m:选择模拟场景
默认情况下,genact 会从可用模块中随机运行场景。使用 -m 可以只运行指定模块,例如:
sudo docker exec -it genact /app/genact -m cc
cc 会模拟 C 语言编译过程,输出类似编译命令和文件名的内容。genact 目前提供以下场景:
| 模块 | 模拟输出内容 |
|---|---|
ansible |
Ansible 配置任务,显示主机和任务执行状态 |
bootlog |
系统启动日志 |
botnet |
僵尸网络节点连接和任务状态 |
bruteforce |
哈希密码破解进度 |
cargo |
Rust 项目的依赖下载、编译和完成信息 |
cc |
C 语言编译命令和目标文件 |
composer |
Composer 依赖安装和自动加载信息 |
cryptomining |
加密货币挖矿进度 |
docker_build |
Docker 镜像构建步骤 |
docker_image_rm |
Docker 镜像删除输出 |
download |
文件下载过程和进度 |
julia |
Julia 包更新过程 |
kernel_compile |
Linux 内核编译过程 |
memdump |
随机内存地址转储内容 |
mkinitcpio |
mkinitcpio 生成 initramfs 镜像的输出 |
rkhunter |
rkhunter rootkit 检查结果 |
simcity |
模拟《模拟城市》的加载状态提示 |
terraform |
Terraform 云资源创建、修改和销毁状态 |
uv |
Python uv 环境同步、依赖下载和安装信息 |
weblog |
类似 Nginx 的 Web 服务器访问日志 |
wpt |
Web Platform Tests 浏览器测试进度和结果 |
以上内容都是 genact 生成的模拟输出,不会真的编译代码、安装依赖、扫描系统或操作 Docker。想在 NAS 上查看当前版本支持的模块名称,可以运行:
sudo docker exec -it genact /app/genact --list-modules
-s:加快模拟速度
-s 是 --speed-factor 的简写,默认速度为 1。把数值调大可以加快场景进度,例如设为 5 倍:
sudo docker exec -it genact /app/genact -s 5
-i:让开场输出立即出现
-i 是 --instant-print-lines 的简写,用来指定开头有多少行跳过等待、立即输出。比如让前 20 行快速出现:
sudo docker exec -it genact /app/genact -i 20
开场这段快速输出之后,程序会按正常速度继续;也可以配合 -s 加快后续进度。
同时使用 -m、-s 和 -i
参数可以组合使用。下面这条命令只运行 C 编译模拟,把速度设为 5 倍,并让开头 20 行立即输出:
sudo docker exec -it genact /app/genact -m cc -s 5 -i 20
查看完整参数说明,可以运行:
sudo docker exec -it genact /app/genact --help
查看日志与停止
在 Docker 的容器日志页面可以查看 Compose 容器后台进程的输出。也可以通过 SSH 查看:
sudo docker logs -f genact
按 Ctrl+C 会退出日志查看,不会停止容器。上面用 docker exec 启动的那份 genact,按 Ctrl+C 会结束这次模拟;Compose 容器仍会继续运行。要停止整个容器,可以在 Docker 的容器页面关闭它。
以上就是本文的全部内容啦,你有好玩的镜像推荐吗?欢迎在评论区留言讨论!
想了解更多 NAS 玩法记得关注《NAS邪修》👏
往期推荐:
- 复古艺术,在飞牛NAS部署ASCII字符画生成器-ASCII-Generator
- IT佬背后的靠山-IT-TOOLS
- 把“程序员修炼手册”搬进NAS-QuickReference
- AI服务统一中转,绿联NAS部署New API全攻略
点赞 + 关注 + 收藏 = 学会了
更多 NAS、自托管服务和工具分享都在博客列表。