Ubuntu 22.04 安装 Beanstalkd 指南
Ubuntu 22.04 安装 Beanstalkd 全流程指南:apt 在线安装与源码编译 1.13 双方案成章,含 systemd 托管、WAL 持久化配置、多版本共存、升级降级、排障实录与卸载清理,命令与回显全部实测。
Ubuntu 22.04 安装 Beanstalkd 指南
目标:在 Ubuntu 22.04 服务器上从零安装 Beanstalkd 轻量级消息队列(工作队列)服务,覆盖 apt 在线安装与源码编译安装两套方案,含 systemd 服务托管、基础配置修改、多版本共存、验证与卸载全流程。全部命令与回显均在 Ubuntu 22.04.5 LTS(x86_64)环境实测通过。
一、环境信息
本文所有命令在以下环境实测(2026-10-22):
- 操作系统:Ubuntu 22.04.5 LTS(x86_64),内核 5.15 系列
- Beanstalkd 版本:apt 仓库版 1.12-2(Ubuntu jammy universe 源)、源码编译版 1.13(官方最新稳定版)
- 默认监听端口:11300(TCP)
- 官方网站:https://beanstalkd.github.io
- 官方仓库:https://github.com/beanstalkd/beanstalkd
- 版本查证方式:GitHub Releases Atom 源(https://github.com/beanstalkd/beanstalkd/releases.atom ,查询日期 2026-10-22),最新发布条目为 v1.13(发布于 2023-03-12)
二、前置条件
安装前确认服务器具备以下条件,逐项验证如下。
2.1 系统与权限
要求一台 Ubuntu 22.04 服务器,并具备 root 或 sudo 权限。本文统一以 root 执行:
whoami
实测回显:
root
cat /etc/os-release | head -2
实测回显:
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
2.2 网络与软件源
apt 方案需要能访问 Ubuntu 官方软件源(archive.ubuntu.com);源码编译方案需要能访问 GitHub。先刷新软件源索引:
apt-get update
实测回显(节选尾部):
Get:8 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [4430 kB]
Fetched 12.5 MB in 8s (1607 kB/s)
Reading package lists...
2.3 端口占用检查
Beanstalkd 默认监听 11300 端口,安装前确认该端口空闲(需要 iproute2 提供的 ss 命令,最小化安装的系统先补装):
apt-get install -y iproute2 netcat-openbsd 2>&1 | tail -1
ss -ltn | grep 11300 || echo "11300 端口空闲"
实测回显:
11300 端口空闲
💡 说明:
netcat-openbsd提供nc命令,后面验证环节用它通过 Beanstalkd 文本协议做冒烟测试;若系统已有可跳过。
三、版本选型说明
Beanstalkd 采用 git tag 发布版本,GitHub Releases 页面不提供二进制附件包,源码统一从 https://github.com/beanstalkd/beanstalkd/archive/v<版本>.tar.gz 获取。Ubuntu 22.04 的软件源里也收录了 Beanstalkd(universe 仓库),两者版本不同,选型前先看对照:
apt-cache policy beanstalkd
实测回显:
beanstalkd:
Installed: (none)
Candidate: 1.12-2
Version table:
1.12-2 500
500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
版本对照表(查询日期 2026-10-22):
| 获取方式 | 版本 | 发布时间 | 来源 |
|---|---|---|---|
| Ubuntu 22.04 apt(universe 仓库) | 1.12-2 | 随 jammy 冻结 | archive.ubuntu.com |
| 官方最新稳定版(源码编译) | 1.13 | 2023-03-12 | github.com/beanstalkd/beanstalkd releases.atom |
| GitHub 星数 | 6.7k | 2026-10-22 查证 | img.shields.io/github/stars/beanstalkd/beanstalkd.json |
关键差异与选型解读:apt 方案装到的是 1.12,比官方最新稳定版 1.13 旧一个大版本;1.13 相对 1.12 的主要变化是 WAL(写前日志)健壮性修复与稳定性修正。对功能验证、学习场景,apt 1.12 完全够用且最省事;需要最新版特性或生产对齐官方版本时,走第五章的源码编译方案。两套方案的详细对比见第六章。
四、方案 A:apt 在线安装(Ubuntu 官方仓库)
4.1 方案说明
Ubuntu 22.04 在 universe 仓库收录了 Beanstalkd 1.12-2,apt install 一步完成二进制、systemd 服务单元、系统用户与默认配置的安装,服务自动注册为开机自启。适合能联网、对版本无强制要求的场景。
4.2 安装步骤
执行安装(DEBIAN_FRONTEND=noninteractive 避免交互确认):
DEBIAN_FRONTEND=noninteractive apt-get install -y beanstalkd 2>&1 | tail -6
实测回显:
Preparing to unpack .../beanstalkd_1.12-2_amd64.deb ...
Unpacking beanstalkd (1.12-2) ...
Setting up netbase (6.3) ...
Setting up beanstalkd (1.12-2) ...
Created symlink /etc/systemd/system/multi-user.target.wants/beanstalkd.service → /lib/systemd/system/beanstalkd.service.
安装完成后包内文件清单如下(用 dpkg -L 核对,排除文档):
dpkg -L beanstalkd | grep -vE "usr/share/(doc|man)"
实测回显:
/.
/etc
/etc/default
/etc/default/beanstalkd
/etc/init.d
/etc/init.d/beanstalkd
/lib
/lib/systemd
/lib/systemd/system/beanstalkd.service
/lib/systemd/system/beanstalkd.socket
/usr
/usr/bin
/usr/bin/beanstalkd
/usr/share
/var
/var/lib
/var/lib/beanstalkd
要点解读:二进制在 /usr/bin/beanstalkd;配置文件是 /etc/default/beanstalkd;附带 systemd 服务单元与 socket 单元各一个;数据目录 /var/lib/beanstalkd 是开启 WAL 持久化后的默认落盘位置;安装同时创建了系统用户 beanstalkd(服务以此用户运行):
id beanstalkd
实测回显:
uid=105(beanstalkd) gid=106(beanstalkd) groups=106(beanstalkd)
4.3 服务管理与 systemd 托管
安装完成后服务自动注册并启动。核对服务状态:
systemctl status beanstalkd --no-pager
实测回显:
● beanstalkd.service - Simple, fast work queue
Loaded: loaded (/lib/systemd/system/beanstalkd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2026-10-22 08:54:57 UTC; 3ms ago
Docs: man:beanstalkd(1)
Main PID: 2846 (beanstalkd)
Tasks: 1 (limit: 629145)
Memory: 328.0K
CPU: 1ms
服务单元内容如下,理解它才能知道去哪里改参数:
systemctl cat beanstalkd --no-pager
实测回显:
# /lib/systemd/system/beanstalkd.service
[Unit]
Description=Simple, fast work queue
Documentation=man:beanstalkd(1)
After=network.target
[Service]
User=beanstalkd
Group=beanstalkd
EnvironmentFile=/etc/default/beanstalkd
ExecStart=/usr/bin/beanstalkd -l ${BEANSTALKD_LISTEN_ADDR} -p ${BEANSTALKD_LISTEN_PORT} $BEANSTALKD_EXTRA
[Install]
WantedBy=multi-user.target
要点解读:ExecStart 的三个参数全部来自 EnvironmentFile=/etc/default/beanstalkd——改监听地址、端口、附加参数都改这个文件,而不是改 unit 文件。包里还带一个 socket 激活单元(按需启用,与 service 二选一即可):
systemctl cat beanstalkd.socket --no-pager
实测回显:
# /lib/systemd/system/beanstalkd.socket
[Unit]
Description=Beanstalkd socket
Documentation=man:beanstalkd(1)
Before=sockets.target
[Socket]
ListenStream=127.0.0.1:11300
[Install]
WantedBy=sockets.target
常用服务管理命令(每条单独执行):
systemctl is-enabled beanstalkd
实测回显:
enabled
systemctl is-active beanstalkd
实测回显:
active
4.4 默认配置与基础修改
查看默认配置文件全文:
cat /etc/default/beanstalkd
实测回显:
## Defaults for the beanstalkd init script, /etc/init.d/beanstalkd on
## Debian systems.
BEANSTALKD_LISTEN_ADDR=127.0.0.1
BEANSTALKD_LISTEN_PORT=11300
# You can use BEANSTALKD_EXTRA to pass additional options. See beanstalkd(1)
# for a list of the available options. Uncomment the following line for
# persistent job storage.
#BEANSTALKD_EXTRA="-b /var/lib/beanstalkd"
逐项说明:
BEANSTALKD_LISTEN_ADDR=127.0.0.1:监听地址,默认只监听本机回环,远程机器连不进来;需要跨机访问时改为0.0.0.0或本机内网 IP。BEANSTALKD_LISTEN_PORT=11300:监听端口。BEANSTALKD_EXTRA:附加启动参数透传,默认注释。最常用的是-b /var/lib/beanstalkd开启 WAL 持久化(不开启则任务全部存内存,重启即失)。
下面实测一次典型修改:把端口改为 11400 并开启 WAL 持久化。直接编辑文件(在文件尾部追加一行 BEANSTALKD_EXTRA):
sed -i 's/^BEANSTALKD_LISTEN_PORT=11300/BEANSTALKD_LISTEN_PORT=11400/' /etc/default/beanstalkd
echo 'BEANSTALKD_EXTRA="-b /var/lib/beanstalkd"' >> /etc/default/beanstalkd
tail -2 /etc/default/beanstalkd
实测回显:
BEANSTALKD_EXTRA="-b /var/lib/beanstalkd"
重启服务使配置生效:
systemctl restart beanstalkd
systemctl status beanstalkd --no-pager | head -5
实测回显:
● beanstalkd.service - Simple, fast work queue
Loaded: loaded (/lib/systemd/system/beanstalkd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2026-10-22 08:55:30 UTC; 3ms ago
Docs: man:beanstalkd(1)
Main PID: 2887 (beanstalkd)
验证新端口与新参数已生效:
ss -ltnp | grep 11400
实测回显:
LISTEN 0 1024 127.0.0.1:11400 0.0.0.0:* users:(("beanstalkd",pid=2887,fd=3))
ps -ef | grep [b]eanstalkd
实测回显:
beansta+ 2887 1 0 08:55 ? 00:00:00 /usr/bin/beanstalkd -l 127.0.0.1 -p 11400 -b /var/lib/beanstalkd
WAL 目录随即生成 binlog 文件与锁文件(-s 默认单文件 10MB 预分配):
ls -la /var/lib/beanstalkd/
实测回显:
total 10252
drwxr-xr-x 2 beanstalkd beanstalkd 4096 Oct 22 08:55 .
drwxr-xr-x 1 root root 4096 Oct 22 08:54 ..
-r-------- 1 beanstalkd beanstalkd 10485760 Oct 22 08:55 binlog.1
-rw------- 1 beanstalkd beanstalkd 0 Oct 22 08:55 lock
再实测持久化效果:写入一条任务 → 重启服务 → 任务仍在:
printf 'put 1 0 60 5\r\nhello\r\n' | nc -q 1 127.0.0.1 11400
systemctl restart beanstalkd
printf 'peek-ready\r\n' | nc -q 1 127.0.0.1 11400
实测回显(第一行为 put 的响应,后两行为重启后 peek-ready 的响应):
INSERTED 1
FOUND 1 5
hello
重启后任务不丢,WAL 持久化生效。验证完毕后把配置改回默认(端口 11300、注释掉 BEANSTALKD_EXTRA),保持与后续章节环境一致:
sed -i 's/^BEANSTALKD_LISTEN_PORT=11400/BEANSTALKD_LISTEN_PORT=11300/' /etc/default/beanstalkd
sed -i '/^BEANSTALKD_EXTRA/d' /etc/default/beanstalkd
systemctl restart beanstalkd
systemctl is-active beanstalkd
实测回显:
active
4.5 安装验证
版本与监听核对:
beanstalkd -v
实测回显:
beanstalkd 1.12
ss -ltnp | grep 11300
实测回显:
LISTEN 0 1024 127.0.0.1:11300 0.0.0.0:* users:(("beanstalkd",pid=2904,fd=3))
通过协议冒烟测试:投递一条任务并读取全局统计:
printf 'put 1 0 60 5\r\nhello\r\n' | nc -q 1 127.0.0.1 11300 | head -1
printf 'stats\r\n' | nc -q 1 127.0.0.1 11300 | head -2
实测回显:
INSERTED 1
OK 1009
---
INSERTED 1 表示任务投递成功,OK 1009 表示统计响应共 1009 字节。协议命令的完整用法见《Beanstalkd 1.13 协议命令与工具详解》。
五、方案 B:源码编译安装(获取官方最新版 1.13)
5.1 方案说明
Beanstalkd 是纯 C 项目,依赖极少,编译只需 gcc 与 make,产物是单个二进制文件。源码编译可以拿到官方最新稳定版 1.13(apt 只有 1.12),也便于自定义安装路径与多版本共存。本章以官方源码包 v1.13.tar.gz 为例,安装到 /usr/local/bin,并配置独立 systemd 服务。
5.2 前置依赖
安装编译工具链与下载工具:
DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential wget 2>&1 | tail -1
实测回显:
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
核对工具版本:
gcc --version | head -1
make --version | head -1
实测回显:
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
GNU Make 4.3
⚠️ 若
wget: command not found,说明系统未装下载工具,执行apt-get install -y wget即可,详细排障见第八章 FAQ 1。
5.3 下载源码包
统一放到 /opt/src 目录管理:
mkdir -p /opt/src && cd /opt/src
wget --timeout=90 https://github.com/beanstalkd/beanstalkd/archive/v1.13.tar.gz -O v1.13.tar.gz
实测回显(节选):
--2026-10-22 08:57:19-- https://github.com/beanstalkd/beanstalkd/archive/v1.13.tar.gz
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: 'v1.13.tar.gz'
2026-10-22 08:57:19 (15.9 MB/s) - 'v1.13.tar.gz' saved [81234]
核对文件大小与 sha256 校验和:
ls -la v1.13.tar.gz
sha256sum v1.13.tar.gz
实测回显:
-rw-r--r-- 1 root root 81234 Oct 22 08:57 v1.13.tar.gz
26292dcdc0a7011d2f8ad968612f2cd8b2ef07687224876015399ae85e9e5263 v1.13.tar.gz
⚠️ 服务器直连 GitHub 失败(
Connection refused/ 超时)时,走 HTTP 代理下载:export https_proxy=http://<代理地址>:<端口>后重试 wget,详细排障见第八章 FAQ 2。
5.4 编译与安装
解压并编译(项目很小,几十秒内完成):
cd /opt/src && tar xzf v1.13.tar.gz && cd beanstalkd-1.13
make 2>&1 | tail -2
实测回显:
cc -Wall -Werror -Wformat=2 -g -c -o main.o main.c
cc -o beanstalkd linux.o conn.o file.o heap.o job.o ms.o net.o primes.o prot.o serv.o time.o tube.o util.o vers.o walg.o main.o -lrt
核对编译产物并确认版本:
ls -la beanstalkd
./beanstalkd -v
实测回显:
-rwxr-xr-x 1 root root 181768 Oct 22 08:57 beanstalkd
beanstalkd 1.13
安装到 /usr/local/bin(PREFIX 指定安装前缀):
make install PREFIX=/usr/local
ls -la /usr/local/bin/beanstalkd
/usr/local/bin/beanstalkd -v
实测回显:
install -d /usr/local/bin/
install beanstalkd /usr/local/bin/beanstalkd
-rwxr-xr-x 1 root root 181768 Oct 22 08:57 /usr/local/bin/beanstalkd
beanstalkd 1.13
此时系统内 apt 版 1.12 与源码版 1.13 并存(/usr/bin/beanstalkd 是 apt 的 1.12,/usr/local/bin/beanstalkd 是源码的 1.13,PATH 中 /usr/local/bin 优先):
which -a beanstalkd
beanstalkd -v
实测回显:
/usr/local/bin/beanstalkd
/usr/bin/beanstalkd
/bin/beanstalkd
beanstalkd 1.13
5.5 systemd 托管
源码安装不自带服务单元,手工创建。先建专用系统用户与 WAL 目录(与 apt 包的 beanstalkd 用户区分,便于两版本并行):
useradd -r -s /usr/sbin/nologin beanstalkd113
mkdir -p /var/lib/beanstalkd-113
chown beanstalkd113:beanstalkd113 /var/lib/beanstalkd-113
创建服务单元文件 /etc/systemd/system/beanstalkd-113.service:
tee /etc/systemd/system/beanstalkd-113.service > /dev/null <<'EOF'
[Unit]
Description=Beanstalkd 1.13 (source build)
After=network.target
[Service]
User=beanstalkd113
Group=beanstalkd113
ExecStart=/usr/local/bin/beanstalkd -l 0.0.0.0 -p 11301 -b /var/lib/beanstalkd-113
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
加载并启动服务:
systemctl daemon-reload
systemctl enable --now beanstalkd-113
systemctl status beanstalkd-113 --no-pager | head -6
实测回显:
Created symlink /etc/systemd/system/multi-user.target.wants/beanstalkd-113.service → /etc/systemd/system/beanstalkd-113.service.
● beanstalkd-113.service - Beanstalkd 1.13 (source build)
Loaded: loaded (/etc/systemd/system/beanstalkd-113.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2026-10-22 08:57:47 UTC; 1s ago
Main PID: 4054 (beanstalkd)
Tasks: 1 (limit: 629145)
Memory: 10.4M
5.6 安装验证
监听端口核对(11301 来自 unit 文件中的 -p 11301,绑定 0.0.0.0):
ss -ltnp | grep 11301
实测回显:
LISTEN 0 1024 0.0.0.0:11301 0.0.0.0:* users:(("beanstalkd",pid=4054,fd=3))
协议冒烟测试:
printf 'use emails\r\nput 1 0 60 11\r\nhello world\r\n' | nc -q 1 127.0.0.1 11301
实测回显:
USING emails
INSERTED 1
至此两套方案均安装验证完成。
六、方案对比与选择建议
| 维度 | 方案 A:apt 在线安装 | 方案 B:源码编译安装 |
|---|---|---|
| 版本 | 1.12-2(jammy universe 冻结版) | 1.13(官方最新稳定版) |
| 是否需联网 | 需访问 Ubuntu 软件源 | 需访问 GitHub(或代理/离线包) |
| 安装方式 | apt 一键,自动装依赖 | build-essential + make,约 1 分钟 |
| systemd 服务 | 自带 unit + socket 单元,自动开机自启 | 手写 unit 文件(本文 5.5 节模板) |
| 运行用户 | 包创建的 beanstalkd | 自建系统用户(如 beanstalkd113) |
| 默认监听 | 127.0.0.1:11300(/etc/default/beanstalkd 控制) | 命令行参数决定(如 0.0.0.0:11301) |
| 升级方式 | apt upgrade(跟随仓库) | 重新下载新版本源码编译替换 |
| 适用场景 | 学习验证、内网快速部署 | 生产对齐官方最新版、多版本共存 |
选择建议:能联网且只求「能用」→ 方案 A;要官方最新版、要控制安装路径或与 apt 版并行共存 → 方案 B。生产环境推荐方案 B 的 1.13,并把 systemd 单元里的 -b WAL 目录、-u 运行用户一并配齐(参数含义见《Beanstalkd 1.13 配置参数详解》)。
七、升级、多版本共存与降级
7.1 apt 版升级
跟随 Ubuntu 仓库即可:
apt-get update && apt-get install --only-upgrade beanstalkd
实测回显(当前已为仓库最新版时的输出):
Reading package lists...
Building dependency tree... done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
7.2 源码版升级
升级步骤与 5.3–5.5 节完全一致,只是把 URL 与目录中的版本号换成目标版本。未来发布新版本时,先查证最新版本号再替换:
curl -sL https://github.com/beanstalkd/beanstalkd/releases.atom | grep -oE '<title>v[0-9.]+' | head -3
实测回显(2026-10-22 查询,最新为 v1.13):
<title>v1.13
<title>dev1.13
<title>v1.12
以当前最新版 1.13 为例(从零迁移或重装时照抄即可;升级更高版本时替换 URL 中的 1.13 并重做 sha256 校验):
cd /opt/src
wget --timeout=90 https://github.com/beanstalkd/beanstalkd/archive/v1.13.tar.gz -O v1.13.tar.gz
tar xzf v1.13.tar.gz && cd beanstalkd-1.13
make && make install PREFIX=/usr/local
systemctl restart beanstalkd-113
⚠️ 升级前建议停写并确认 WAL 已落盘;升级后用
beanstalkd -v与stats命令的version字段双重核对(见《Beanstalkd 1.13 协议命令与工具详解》)。
7.3 多版本共存
apt 的 1.12(/usr/bin/beanstalkd)与源码的 1.13(/usr/local/bin/beanstalkd)天然并存,只要监听端口不同即可同时运行。实测两实例并行:
ss -ltnp | grep -E '11300|11301'
实测回显:
LISTEN 0 1024 127.0.0.1:11300 0.0.0.0:* users:(("beanstalkd",pid=2904,fd=3))
LISTEN 0 1024 0.0.0.0:11301 0.0.0.0:* users:(("beanstalkd",pid=4054,fd=3))
回退(降级)方法:源码版降级即重新编译旧版覆盖;apt 版降级用 apt-get install beanstalkd=<目标版本号>(可先 apt-cache madison beanstalkd 查看仓库可用版本)。
八、常见问题(FAQ)
Q1:执行 wget 提示 wget: command not found?
最小化安装的 Ubuntu 不带 wget。现象与解决:
bash: line 1: wget: command not found
apt-get install -y wget
装完重试下载即可。用 curl 也行:curl -fL <URL> -o v1.13.tar.gz。
Q2:从 GitHub 下载源码报 Connection refused 或一直超时?
实测现象:
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
定位:DNS 解析正常但 443 连不上,属服务器到 GitHub 的网络链路问题。解决方案按优先级:
- 服务器有 HTTP 代理时,给 wget 配代理环境变量后重试:
export https_proxy=http://192.168.1.62:7897 http_proxy=http://192.168.1.62:7897
wget --timeout=90 https://github.com/beanstalkd/beanstalkd/archive/v1.13.tar.gz -O v1.13.tar.gz
- 无代理时改用可达的 GitHub 加速下载站点获取同名文件,下载后务必重做 sha256 校验(对照 5.3 节实测值
26292dcdc0a7011d2f8ad968612f2cd8b2ef07687224876015399ae85e9e5263)。 - 彻底断网的机器,在能上网的机器下载后用 scp 拷入服务器。
Q3:启动报 bind(): Address already in use?
实测现象(11300 已有实例时再启动一个默认端口的 beanstalkd):
/usr/local/bin/beanstalkd: net.c:104 in make_inet_socket: bind(): Address already in use
/usr/local/bin/beanstalkd: main.c:99 in main: make_server_socket()
定位:目标端口已被其他进程监听。排查:
ss -ltnp | grep 11300
解决:换端口(-p 或 /etc/default/beanstalkd 里的 BEANSTALKD_LISTEN_PORT),或停掉旧实例。beanstalkd 遇到该错误以退出码 111 结束:echo $? 返回 111。
Q4:apt 装到的版本(1.12)和官方最新(1.13)不一致?
Ubuntu 把版本冻结在发行版里,jammy 只提供 1.12-2,属正常现象。需要 1.13 走第五章源码编译;源码版与 apt 版可共存(见 7.3 节),不必卸载 apt 版。
Q5:想改监听地址让远程机器连进来?
改 /etc/default/beanstalkd 的 BEANSTALKD_LISTEN_ADDR(apt 版)或 systemd 单元的 -l 参数(源码版),重启服务后用 ss -ltnp | grep 11300 核对绑定地址已变化。远程连通后务必结合防火墙限制来源 IP——Beanstalkd 协议本身没有认证机制,任何能连上端口的客户端都能读写全部任务。
九、卸载与清理
9.1 卸载 apt 版
systemctl stop beanstalkd
apt-get purge -y beanstalkd 2>&1 | tail -2
实测回显:
(Reading database ... 16344 files and directories currently installed.)
Purging configuration files for beanstalkd (1.12-2) ...
purge requested, thus removing /var/lib/beanstalkd
purge 会连同配置与数据目录一起删除,核对三处关键路径均已清除:
ls /usr/bin/beanstalkd 2>&1
ls /etc/default/beanstalkd 2>&1
ls /var/lib/beanstalkd 2>&1
实测回显:
ls: cannot access '/usr/bin/beanstalkd': No such file or directory
ls: cannot access '/etc/default/beanstalkd': No such file or directory
ls: cannot access '/var/lib/beanstalkd': No such file or directory
⚠️ 若只想删程序保留任务数据,用
apt-get remove(保留 /etc/default/beanstalkd)并自行备份 /var/lib/beanstalkd 后再删。
9.2 卸载源码版
依次删除服务、二进制、源码目录、WAL 目录与运行用户(每条单独执行):
systemctl disable --now beanstalkd-113
实测回显:
Removed /etc/systemd/system/multi-user.target.wants/beanstalkd-113.service.
rm -f /etc/systemd/system/beanstalkd-113.service
systemctl daemon-reload
rm -f /usr/local/bin/beanstalkd
rm -rf /opt/src/beanstalkd-1.13 /var/lib/beanstalkd-113
userdel beanstalkd113
核对卸载干净:
ls /usr/local/bin/beanstalkd 2>&1
ss -ltn | grep 11301 || echo "11301 已无监听"
实测回显:
ls: cannot access '/usr/local/bin/beanstalkd': No such file or directory
11301 已无监听
十、参考链接
- Beanstalkd 官网:https://beanstalkd.github.io
- GitHub 仓库(源码与 releases.atom):https://github.com/beanstalkd/beanstalkd
- v1.13 源码包直链:https://github.com/beanstalkd/beanstalkd/archive/v1.13.tar.gz
- 1.13 版本发布公告:https://beanstalkd.github.io/2023/03/12/1.13-release-notes.html
- 官方协议文档(命令与响应全集):https://raw.githubusercontent.com/beanstalkd/beanstalkd/master/doc/protocol.txt
- 本站同专栏文档:《Beanstalkd 1.13 介绍与选型指南》、《Beanstalkd 1.13 配置参数详解》、《Beanstalkd 1.13 协议命令与工具详解》