ubutnu系统关机卡 90s 的原因分析

1. 前提条件

  • 系统:ubuntu 20.04
  • 输入法:搜狗
    从 windows 以来我一直在使用 sougou 输入法,包括新安装 ubuntu 也是先装上 sougou 输入法。但是我发现我的 ubuntu 关机会卡在:等待当前用户的 session c2 需要 90s。后面深入我才知道它是元凶。

90 秒 ≈ systemd 默认的 TimeoutStopSec=90s

session c2 = 当前登录用户的 systemd 用户会话(user session)

关机卡 90s = systemd 在等"你的用户进程自己退出",但它们没退出

2. 如何 确认"是谁卡住 session c2"

bash 复制代码
loginctl session-status c2

session-c2.scope
 ├─ lightdm
 ├─ gnome-session-binary
 ├─ fcitx -d
 ├─ sogoupinyin-watchdog   ← ⚠
 └─ sogoupinyin-service    ← ⚠

太好了,这个输出已经100% 把凶手抓出来了。

关机卡 90 秒 = sogoupinyin(搜狗输入法)进程在阻塞用户 session 退出

关键事实

1️⃣ 系统级组件(lightdm / gnome-session / dbus)

→ 都是 systemd 原生管理的,几乎不可能卡 90s

2️⃣ fcitx 本身

→ 能正常响应 SIGTERM

3️⃣ 只有第三方闭源进程

👉 /opt/sogoupinyin/files/bin/*

搜狗输入法是 Linux 下"关机拖死"的老油条

(尤其 Ubuntu + GNOME + systemd)

3. 为什么搜狗输入法会拖 90 秒?

技术原因

  • sogoupinyin-watchdog 忽略 SIGTERM

  • 进程间相互拉起,形成"互保"

  • systemd-logind 在等:

    "用户进程请自己退出"

  • 结果:一直不退出

  • → 等满 UserStopDelaySec = 90s

  • → systemd 强杀

  • → 你看到"卡 90 秒"


4. 解决方案

4.1 方案1:

我看有人专门写了个关闭服务:

https://blog.csdn.net/qq_40761353/article/details/147869435

但是这个解决方案并不优雅!

4.2 方案2:(强烈推荐)

最优雅的解决方案

👉 卸载搜狗输入法,使用 fcitx5 + Rime(小鹤 / 全拼)

这是目前 Linux 桌面下综合体验最优解,没有之一。

5. 为什么搜狗输入法在 Linux 上"本质不优雅"

技术层面问题

  • 闭源
  • 非 systemd-aware
  • watchdog 自拉起
  • 忽略 SIGTERM
  • 进程互保
  • 长期未修复

👉 它是 Windows 思维的软件,被移植到 Linux

6. 那"最好用"的 Linux 输入法是什么?

🥇 No.1:fcitx5 + Rime(强烈推荐)

为什么是最优解
维度 评价
稳定性 ⭐⭐⭐⭐⭐
systemd 兼容 ⭐⭐⭐⭐⭐
关机/注销 ⭐⭐⭐⭐⭐
中文输入质量 ⭐⭐⭐⭐☆
可定制性 ⭐⭐⭐⭐⭐
CPU / 内存 ⭐⭐⭐⭐⭐

👉 完全不会卡关机


输入体验能不能"比搜狗好"?

可以,而且可以更好,但取决于配置。

你可以做到:
  • 小鹤双拼 / 自然码
  • 自定义词库
  • 学习频率
  • 中英文无感切换
  • 零联网、零上传

很多 Linux 内核 / ROS / CUDA 工程师 都用它。


🥈 No.2:ibus-rime

  • 稳定

  • GNOME 原生

  • 但:

    • 性能稍差
    • 配置不如 fcitx5 灵活

🥉 No.3:fcitx5 + cloudpinyin

  • 有云词
  • 但隐私 & 稳定性一般

❌ 不推荐继续使用

输入法 原因
搜狗拼音 拖死关机
百度输入法 已基本维护停滞
谷歌拼音 已停止维护

7. 如果你"担心输入体验不如搜狗"

我给你一个现实评价(不忽悠):

刚迁移 1--3 天

  • ❌ 词频不熟
  • ❌ 联想不如搜狗

1 周后

  • ✅ 常用词全学会
  • ✅ 专业词(ROS / CUDA / Git)更准

1 个月后

你会觉得搜狗"太吵了"

因为:

  • 没广告
  • 没弹窗
  • 没后台服务
  • 没隐性网络请求

8. 我给你的"最优雅决策路径"

由于我们是 ubuntu 20.04 , fcitx5 + rime 并没有这个库,因此我们选择使用 ibus-rime + "雾凇拼音" + 语言模型

✅ Step 1:卸载搜狗(不留隐患)

bash 复制代码
sudo apt purge sogoupinyin*
sudo rm -rf /opt/sogoupinyin

✅ Step 2:安装 ibus-rime

bash 复制代码
https://github.com/hchunhui/ibus-rime.AppImage/releases
下载: ibus-rime-x86_64.AppImage

✅ Step 3:设为默认输入法

bash 复制代码
im-config

选择:ibus


✅ Step 4启用好用的方案

我推荐:

https://github.com/iDvel/rime-ice

Linux 发行版用户可以使用 RIME 官方的「东风破(Plum)」工具来安装雾凇拼音。

bash 复制代码
git clone --depth 1 https://github.com/rime/plum ~/plum

# 切换到东风破的目录
cd ~/plum

# 如果你使用Fcitx5,你需要加入参数,让东风破把配置文件写到正确的位置
rime_frontend=fcitx5-rime bash rime-install iDvel/rime-ice:others/recipes/full

# 如果你是用IBus,则不需加参数,因为东风破默认是为IBus版的RIME打造。
bash rime-install iDvel/rime-ice:others/recipes/full

语言模型:

https://github.com/amzxyz/RIME-LMDG/releases

wanxiang-lts-zh-hans.gram 放在

bash 复制代码
 mv wanxiang-mini-zh-hans.gram /home/你的用户名/.config/ibus/rime/

问题

右上角没有"小键盘 / 输入法图标"了:

bash 复制代码
➜ rime gsettings get org.gnome.desktop.input-sources sources 
[('xkb', 'cn')]

一步到位修复(核心命令)

直接执行这一条(非常关键)👇

bash 复制代码
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('ibus', 'rime')]"

然后:

bash 复制代码
ibus restart

或者直接注销 / 重新登录。

非常完美。这个输入法支持很多 diy , 有时间可以折腾下,比如加入一些词库等等。

我们终于不再用垃圾的 sougou 了!!!

相关推荐
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI4 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
官能4 天前
从 ReAct 到 LangGraph:房产 Agent 的工作流升级复盘
人工智能·语言模型
The️5 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
小马过河R5 天前
OpenClaw 记忆系统工作原理
人工智能·机器学习·语言模型·agent·openclaw·智能体记忆机制
再战300年5 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2005 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟5 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬5 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民5 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code