彻底卸载 Stalwart 邮件服务(官方社区原版教程)

重要提示:本教程基于 Stalwart 0.15 版本编写,0.16 及以上新版本未经过完整测试,请自行承担操作风险。

前置要求

  • 拥有 root 权限或 sudo 执行权限
  • 确认当前系统使用的服务管理器(systemd / init.d)

步骤 1:停止并禁用 Stalwart 服务

1.1 基于 systemd 的 Linux 系统(Ubuntu 18.04+ / Debian 10+ / CentOS 8+)

sudo systemctl stop stalwart.service
sudo systemctl disable stalwart.service

1.2 基于 init.d 的 Linux 系统(Debian 9 / CentOS 7 及更早版本)

sudo service stalwart stop
sudo update-rc.d stalwart remove

1.3 macOS 系统

sudo launchctl stop system/stalwart.mail
sudo launchctl disable system/stalwart.mail
sudo launchctl unload /Library/LaunchAgents/stalwart.mail.plist

步骤 2:删除系统服务文件

2.1 Linux (systemd)

sudo rm -f /etc/systemd/system/stalwart.service
sudo systemctl daemon-reload

2.2 Linux (init.d)

sudo rm -f /etc/init.d/stalwart
sudo rm -f /etc/default/stalwart

2.3 macOS

sudo rm -f /Library/LaunchAgents/stalwart.mail.plist

步骤 3:删除主安装目录

若安装时修改过路径,请将 `/opt/stalwart` 替换为你的实际安装路径:

sudo rm -rf /opt/stalwart

补充说明:部分用户会将数据目录单独配置为 `/var/lib/stalwart/`,如需彻底清理数据,也请一并删除该目录。


步骤 4:删除 Stalwart 系统用户与用户组

4.1 Linux 系统

删除 stalwart 用户(-r 参数会同步删除用户家目录)

sudo userdel -r stalwart

若系统中用户名为 _stalwart(类 macOS 命名),执行下方命令

sudo userdel -r _stalwart

补充说明:Stalwart 安装程序默认不会创建用户家目录,若你不需要彻底清空残留,可去掉 `-r` 参数。

4.2 macOS 系统

# 先查询 _stalwart 用户 UID
dscl /Local/Default -list /Users | grep stalwart

# 删除用户与用户组
sudo dscl /Local/Default -delete /Users/_stalwart
sudo dscl /Local/Default -delete /Groups/_stalwart

步骤 5:全局检索并清理残余文件(可选,推荐执行)

检索系统内所有包含 stalwart 名称的文件/目录,按需手动删除:

sudo find / -name '*stalwart*' 2>/dev/null

检索完成后,手动删除扫描到的残留文件:

sudo rm -f /path/to/stalwart/file

步骤 6:验证卸载是否完成

执行以下三组命令,全部返回「未找到/无法访问」即代表卸载成功:

# 检查服务是否存在
sudo systemctl status stalwart.service 2>&1 | grep 'not-found'

# 检查系统用户是否存在
id stalwart 2>&1 | grep 'no such user'

# 检查安装目录是否存在
ls -la /opt/stalwart 2>&1 | grep 'cannot access'

补充简易方案(仅需重装、无需深度清理)

若仅打算重新部署 Stalwart,仅需删除主安装目录即可,可跳过服务、用户等清理步骤:

sudo rm -rf /opt/stalwart

四下皆无人