shpool 项目使用与启动教程
shpool Think tmux, then aim... lower 项目地址: https://gitcode.com/gh_mirrors/sh/shpool
1. 项目介绍
shpool 是一个轻量级的会话持久化工具,它允许用户创建被 shpool 所拥有的命名 shell 会话。当连接断开时,会话不会丢失。shpool 可以被视为 tmux 或 GNU screen 的轻量级替代品。与 tmux 和 screen 不同,shpool 不会接管整个终端,也不提供窗口分割和贴片功能,它仅提供会话持久化功能。这种方法的优点是 shpool 不会破坏原生的滚动回滚或复制粘贴功能。
2. 项目快速启动
安装
从 crates.io 安装:
cargo install shpool
使用 systemd 运行守护进程:
curl -fLo "${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/shpool.service" --create-dirs https://raw.githubusercontent.com/shell-pool/shpool/master/systemd/shpool.service
sed -i "s|/usr|$HOME/.cargo|" "${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/shpool.service"
curl -fLo "${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/shpool.socket" --create-dirs https://raw.githubusercontent.com/shell-pool/shpool/master/systemd/shpool.socket
systemctl --user enable shpool
systemctl --user start shpool
loginctl enable-linger
如果不使用 systemd,可以运行以下命令安装:
cargo install shpool
使用
shpool 通常用于在远程主机上提供持久的会话。要在远程主机上使用 shpool,需要在远程主机上安装 shpool。客户端不需要安装任何额外软件。
安装并设置完成后,典型的使用模式是:
- 通过 SSH 连接到安装了 shpool 的主机。
- 创建一个新的命名会话:
shpool attach main
这里 main
是会话的名称。您将为连接到远程主机的每个终端创建一个单独的命名会话。
如果连接断开或卡住,可以重新通过 SSH 连接到远程主机,并再次通过以下命令连接到相同的命名会话:
shpool attach main
如果终端卡住并且您强制关闭了窗口,可能发现 shpool 仍然认为有一个终端连接到您的会话。这是因为一个 SSH 代理可能在保持连接,希望再次收到流量。您可以运行以下命令强制会话分离:
shpool detach main
3. 应用案例和最佳实践
- 远程会话管理:使用 shpool 管理远程服务器的多个会话,确保会话在断开连接时不会中断。
- 自动化任务:通过 shpool 在远程服务器上运行自动化脚本和任务,确保任务在后台持续运行。
4. 典型生态项目
shpool 作为轻量级的会话管理工具,可以与各种远程任务管理器和自动化工具配合使用,例如:
- tmux:虽然 shpool 本身是一个轻量级的 tmux 替代品,但在需要更多特性的情况下,可以与 tmux 一起使用。
- Ansible:通过 shpool 管理远程会话,可以使用 Ansible 自动部署和配置远程服务器。
shpool Think tmux, then aim... lower 项目地址: https://gitcode.com/gh_mirrors/sh/shpool