银河麒麟系统通过apport或kylin-crash-reporter服务自动捕获进程崩溃信息。启用apport需安装、启用服务并配置本地存储;推荐桌面环境使用kylin-crash-reporter,支持gui弹窗或静默上报,须确保/var/crash目录权限正确,最后用段错误测试验证.crash文件生成。

银河麒麟系统中进程崩溃后需自动收集并上报错误信息,才能快速定位问题根源,避免同类故障反复发生。该功能依赖apport或kylin-crash-reporter服务持续监听SIGSEGV等致命信号,并将core dump、堆栈、环境变量打包上传至指定服务器或本地目录。
启用并配置Apport错误报告服务
Apport是Ubuntu系发行版(含银河麒麟桌面版)默认的崩溃报告框架,支持用户态进程自动捕获与结构化上报。
1、确认系统已安装apport:sudo apt list --installed | grep apport
2、若未安装,执行:sudo apt install apport apport-cli -y
3、启用服务并启动:sudo systemctl enable --now apport.service
4、编辑主配置文件:sudo nano /etc/apport/crashdb.conf
5、将default项改为本地存储模式,避免强制联网上报:【default = {"impl": "crashdb", "options": {"root": "/var/crash", "distro": "kylin"}}】
6、重启服务使配置生效:sudo systemctl restart apport.service
替换为Kylin原生崩溃报告器(推荐桌面环境)
银河麒麟V10 SP1+版本预装kylin-crash-reporter,比Apport更适配MATE桌面与国产应用生态,且默认启用GUI弹窗与后台日志归档。
方法一:启用服务并允许弹窗
1、运行命令启用服务:sudo systemctl enable --now kylin-crash-reporter.service
2、检查是否监听成功:systemctl status kylin-crash-reporter.service | grep active
3、确认配置文件中允许进程级捕获:sudo grep -A5 "process" /etc/kylin/crash-reporter.conf
方法二:静默上报(无弹窗,仅存日志)
1、编辑配置:sudo nano /etc/kylin/crash-reporter.conf
2、在[report]节区添加或修改:auto_upload=true,upload_server=http://192.168.100.50:8080/crash
3、确保/var/crash目录可写:sudo chmod 755 /var/crash && sudo chown root:adm /var/crash
这一步必须做,否则所有崩溃日志都会因权限拒绝而丢弃。
验证进程崩溃是否触发自动报告
使用测试程序主动触发段错误,观察是否生成对应.crash文件。
第一步:创建测试C程序test_seg.c:
#include
int main() { int *p = NULL; printf("%d", *p); return 0; }
第二步:编译并运行:
gcc -g test_seg.c -o test_seg → ./test_seg
第三步:立即检查崩溃记录:
ls -l /var/crash/ | grep test_seg
第四步:若看到形如_test_seg.1234567890.crash的文件,说明捕获成功;打开它,确认其中包含Stacktrace、Executable、ProcStatus等关键字段。











