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 了!!!

相关推荐
大模型任我行2 小时前
Meta:LLM无监督提升科研能力
人工智能·语言模型·自然语言处理·论文笔记
EndingCoder2 小时前
TypeScript 入门:理解其本质与价值
前端·javascript·ubuntu·typescript·node.js
KG_LLM图谱增强大模型3 小时前
NEURO-GUARD:知识引导推理驱动的革命性可解释医学影像多模态大模型诊断框架
语言模型·大模型·知识图谱
小马过河R4 小时前
混元世界模型1.5架构原理初探
人工智能·语言模型·架构·nlp
vibag6 小时前
Model大模型接口
python·语言模型·langchain·大模型
vibag6 小时前
提示模板PromptTemplate
python·语言模型·langchain·大模型
学不完的路路路6 小时前
IMX6ULL开发板固件烧录问题:添加设备树节点不成功
linux·ubuntu·设备树
oMcLin6 小时前
Ubuntu 22.04 Docker 容器启动失败:解决 Overlay2 存储驱动冲突
java·ubuntu·docker
知识分享小能手7 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的进程管理详解(15)
linux·学习·ubuntu