Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Ubuntu 系統程式錯誤彈窗解決方案:Apport 錯誤回報機制完整停用與調優指南

編輯:關於 Linux

Ubuntu 使用者常遇到「檢測到系統程式錯誤」彈窗,這是 Apport 錯誤收集機制在背景偵測到程式崩潰(如 Segfault)後提示使用者回報。本文解析 Apport 運作原理,提供停用、調優與正確處理流程,徹底解決彈窗干擾。

Apport 錯誤彈窗

回報確認對話框

一、Apport 運作機制

  • 核心元件:apport 服務監聽核心崩潰訊號(SIGSEGV、SIGABRT 等)
  • 觸發條件:用戶空間程式異常終止產生 core dump
  • 處理流程:收集崩潰資訊 → 寫入 /var/crash/ → 顯示 GUI 提示 → 使用者選擇回報 → 開啟瀏覽器登入 Launchpad 提交 Bug
  • 目的:協助開發者收集崩潰堆疊、環境資訊修復 Bug

二、為什麼不建議直接點「回報錯誤」?

  • 流程繁瑣:需登入/註冊 Launchpad → 填寫表單 → 提交(4+ 步驟)
  • 多為已知 Bug:重複回報無助於修復
  • 隱私考量:崩潰報告可能含敏感路徑、環境變數
  • 點擊後仍會再次彈出「內部錯誤」對話框

Launchpad Bug 回報頁面

三、解決方案對比

sudo service apport stopsudo sed -i 's/enabled=1/enabled=0/' /etc/default/apportgsettings set org.gnome.desktop.interface enable-apport falseecho 'core' | sudo tee /proc/sys/kernel/core_patternsudo rm /var/crash/*

四、推薦最佳實踐:永久停用 Apport

# 1. 停用服務
sudo systemctl stop apport
sudo systemctl disable apport

# 2. 修改配置檔(防止套件更新重新啟用)
sudo sed -i 's/^enabled=1$/enabled=0/' /etc/default/apport

# 3. 清理現有崩潰報告
sudo rm -f /var/crash/*

# 4. 驗證
cat /etc/default/apport
# 應顯示 enabled=0

五、進階:保留 Apport 但調優行為

1. 僅收集特定套件的崩潰

# 編輯 /etc/apport/crashdb.conf
# 設定只提交特定套件至 Launchpad

2. 自定義崩潰處理腳本

# /etc/apport/crashhook.py
# 可整合發送至內部錯誤追蹤系統(Sentry、Jira、自建 API)

3. 開發者模式:保留 core dump 供除錯

# /etc/security/limits.conf
* soft core unlimited
* hard core unlimited

# /etc/sysctl.d/60-core-pattern.conf
kernel.core_pattern = /var/crash/core.%e.%p.%h.%t
kernel.core_uses_pid = 1

sudo sysctl --system

六、常見誤區澄清

方案指令/操作優點缺點推薦度
暫時停用(當前 session)即時生效、不修改配置重啟後恢復★★☆
永久停用(推薦桌面用戶)徹底禁用、升級保持失去自動崩潰收集★★★★★
僅停用 GUI 彈窗保留後端收集、無干擾需 GNOME 環境★★★★☆
調整核心模式保留 core dump自行分析 core dump需專業知識、佔磁碟★★★
清理舊崩潰報告釋放空間、避免重複提示治標不治本★★☆

七、若需協助上游修復 Bug,正確回報流程

  1. 確認套件名:apport-cli -p <套件名> /var/crash/_usr_bin_xxx.1000.crash
  2. 查看報告內容:cat /var/crash/_usr_bin_xxx.1000.crash
  3. 檢查 Launchpad 是否已有相同 Bug:https://bugs.launchpad.net/ubuntu/+source/<套件名>
  4. 若無,執行 ubuntu-bug <套件名> 依嚮導提交
  5. 訂閱 Bug 進度,配合上游測試修復版本

對於多數桌面使用者,永久停用 Apport 是性價比最高的選擇;伺服器環境建議保留後端收集並整合至監控系統,避免 GUI 干擾無頭環境。

Copyright © Windows教程網 All Rights Reserved
誤區事實
「系統壞了」僅是背景程式崩潰,系統通常正常運作
「必須回報才能修好」回報僅幫助上游開發者,不影響當前系統
「停用 Apport 會讓系統不穩定」Apport 只是收集器,不參與系統運行
「這是病毒」Apport 是 Ubuntu 官方元件,開源透明