Skip to content

Instantly share code, notes, and snippets.

@KuRRe8
Last active June 7, 2026 18:08
Show Gist options
  • Select an option

  • Save KuRRe8/1d983d0d13e72309fc7b8cdb7d242974 to your computer and use it in GitHub Desktop.

Select an option

Save KuRRe8/1d983d0d13e72309fc7b8cdb7d242974 to your computer and use it in GitHub Desktop.
Linux related knowledge

Linux System related

COVER PAGE

Jetson (Ubuntu 22.04) 黑屏/无图形诊断结论:

  1. 机器可 SSH,系统已启动,不是硬件死机。
  2. apt history 显示 remove gnome-calendar/gnome-keyring 等时,连带卸载了:
    • gdm3
    • gnome-shell
    • ubuntu-session
    • ubuntu-desktop/minimal
  3. 先恢复最小图形链路:gdm3 + gnome-shell + ubuntu-session(keyring 可后装)
  4. 桌面异常(无图标/无框选)是因扩展缺失,补装:
    • gnome-shell-extension-ubuntu-dock
    • gnome-shell-extension-desktop-icons-ng
    • gnome-shell-extension-appindicator
  5. 重登/重启后恢复正常。

之后尽量避免 apt remove 直接删 GNOME 组件,先 apt -s remove ... 预演。

Signal

信号机制是Linux系统下进程间通信IPC的一种简单方式,本质是软件中断。(其他IPC还有管道,消息,共享内存,套接字)。 在C语境通过<signal.h>使用,在shell中通过kill或者快捷键发送信号。

大部分shell会在内部实现kill而不调用外部的/usr/bin/kill,这样的好处是Linux系统资源占满无法新建文件描述符时候,依旧能执行kill。

通过kill -l可以查看所有的信号。

终端控制类信号

这类信号主要由终端驱动程序触发,用于管理前后台作业、窗口缩放及用户交互中断。Windows使用SetConsoleCtrlHandler()或者C库中的模拟signal函数来实现类似功能。

序号 信号名 含义 默认行为
1 SIGHUP 终端连接断开(挂断) 通知终止进程,守护进程重新加载配置重启
2 SIGINT 用户中断(Ctrl+C) 优雅终止进程
3 SIGQUIT 用户退出(Ctrl+\) 优雅终止并 Core Dump
18 SIGCONT 继续运行暂停的进程 继续运行
19 SIGSTOP 暂停进程(不可捕获/忽略 强制暂停进程
20 SIGTSTP 终端暂停信号(Ctrl+Z) 优雅暂停进程到后台,程序可以暂停前清理终端状态,比如切换回显,切换回主缓冲区
21 SIGTTIN 后台进程尝试读取终端 暂停进程,避免后台读取当前stdin
22 SIGTTOU 后台进程尝试写入终端 如果设置了stty tostop,暂停进程,避免后台进程写入当前stdout
28 SIGWINCH 终端窗口大小改变 对于意图全屏的程序需要改变自身大小

进程间通信 (IPC) 与系统指令类信号

这类信号通常由系统管理指令(如 kill)或进程逻辑主动触发,用于协调多个进程的运行状态。Windows下一般也是API例如TerminateProcess()来实现。

序号 信号名 功能 默认行为
9 SIGKILL 强制杀死进程(不可捕获/忽略 立即终止
10 SIGUSR1 用户自定义信号 1 终止进程
12 SIGUSR2 用户自定义信号 2 终止进程
13 SIGPIPE 管道破裂(写无读端的管道) 终止进程
14 SIGALRM 定时器超时(alarm) 终止进程
15 SIGTERM 终止请求(kill 默认信号) 优雅终止,功能类似SIGINT,只不过是直接进程调用api而不是终端输入
17 SIGCHLD 子进程停止或退出 忽略
23 SIGURG 套接字上有紧急数据 忽略
26 SIGVTALRM 虚拟定时器超时 终止进程
27 SIGPROF 分析定时器超时 终止进程
29 SIGIO 文件描述符准备好 I/O 终止进程
30 SIGPWR 电源故障(UPS 通知) 终止进程
34-64 SIGRTMIN-MAX 实时信号(支持排队与携带数据) 终止进程

处理软硬件错误类信号

这类信号通常由 CPU 硬件异常或内核检测到的严重软件错误触发。在Windows下处理错误一般是内核态结构化异常处理SEH,跳转到异常向量表而不是通过发送信号。

序号 信号名 功能 默认行为
4 SIGILL 非法指令 终止并 Core Dump
5 SIGTRAP 断点/跟踪陷阱(调试用) 终止并 Core Dump
6 SIGABRT 来自 abort() 的异常终止 终止并 Core Dump
7 SIGBUS 总线错误(内存对齐/物理故障) 终止并 Core Dump
8 SIGFPE 算术异常(如除以零) 终止并 Core Dump
11 SIGSEGV 段错误(非法内存访问) 终止并 Core Dump
16 SIGSTKFLT 协处理器栈错误(已废弃) 终止进程
24 SIGXCPU 超过 CPU 时间限制 终止并 Core Dump
25 SIGXFSZ 超过文件大小限制 终止并 Core Dump
31 SIGSYS 非法的系统调用 终止并 Core Dump

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment