Linux

Linux Notes #

This is my learning Notes for Cloud Native, include Kubernetes/Istio/…

Linux on Github

GitLab with Git Essentials


Commands #

Command NameDescriptionNote
fg / bg

Linux command line cheat sheet


Linux 常用信号一览 #

N名称默认行为含义
1SIGHUP终止挂起(Hangup)。终端断开连接时发送。常用于通知守护进程重新加载配置
2SIGINT终止中断(Interrupt)。用户按 Ctrl+C 时发送
3SIGQUIT终止 + core dump退出(Quit)。用户按 Ctrl+\ 时发送
4SIGILL终止 + core dump非法指令(Illegal Instruction)。程序执行了无效的 CPU 指令
5SIGTRAP终止 + core dump陷阱(Trap)。调试器断点命中时触发
6SIGABRT终止 + core dump异常中止(Abort)。abort() 函数触发,通常是程序主动调用的异常退出
7SIGBUS终止 + core dump总线错误(Bus Error)。内存对齐错误或映射文件失效
8SIGFPE终止 + core dump浮点异常(Floating Point Exception)。如除以零
9SIGKILL终止(不可捕获/不可忽略)强制杀死进程。内核直接处理,进程无法拦截
10SIGUSR1终止用户自定义信号 1。无固定语义,由程序自行定义用途
11SIGSEGV终止 + core dump段错误(Segmentation Fault)。访问了非法内存地址
12SIGUSR2终止用户自定义信号 2。同上,程序自行定义
13SIGPIPE终止管道破裂(Broken Pipe)。向已关闭的管道/socket 写数据时触发
14SIGALRM终止定时器超时(Alarm)。alarm() 函数设置的定时器到期
15SIGTERM终止优雅终止(Terminate)。请求进程自行退出,进程可以捕获并处理(如清理资源后退出)
17SIGCHLD忽略子进程状态变化(停止/退出)。父进程收到此信号表示子进程状态变更
18SIGCONT继续运行恢复执行。使被暂停的进程继续运行
19SIGSTOP暂停(不可捕获/不可忽略)强制暂停进程。与 SIGKILL 一样无法拦截
20SIGTSTP暂停终端停止(Terminal Stop)。用户按 Ctrl+Z 时发送,可捕获
21SIGTTIN暂停后台进程尝试从终端读取输入
22SIGTTOU暂停后台进程尝试向终端写入输出
28SIGWINCH忽略窗口大小变化(Window Change)。终端窗口尺寸改变时通知
30SIGPWR终止电源故障(Power Failure)。UPS 检测到断电时通知
31SIGSYS终止 + core dump系统调用错误。程序调用了不存在的系统调用

按用途分类 #

                ┌── SIGKILL (9)  ← 强制,不可拦截
    终止进程 ───┤
                └── SIGTERM (15) ← 优雅,可拦截
                          SIGINT (2)  ← Ctrl+C
                          SIGHUP (1)  ← 通常用于重载配置

    暂停/恢复 ──┬── SIGSTOP (19) ← 强制,不可拦截
                └── SIGTSTP (20) ← Ctrl+Z,可拦截
                └── SIGCONT (18) ← 恢复运行

    程序错误 ───┬── SIGSEGV (11) ← 段错误(最常见)
                ├── SIGFPE (8)   ← 除零/浮点异常
                ├── SIGABRT (6)  ← abort() 触发
                ├── SIGBUS (7)  ← 内存对齐错误
                └── SIGILL (4)  ← 非法指令

    自定义用途 ─┬── SIGUSR1 (10) ← 程序自行定义
                └── SIGUSR2 (12) ← 程序自行定义

Reference #

https://pkg.go.dev/github.com/docker/libcontainer#section-readme https://pkg.go.dev/github.com/vishvananda/netns#section-readme https://pkg.go.dev/github.com/docker/docker/api/types/container

https://dev.to/devopsvn/deep-into-container-build-your-own-container-with-golang-3f5e https://unixism.net/2020/06/containers-the-hard-way-gocker-a-mini-docker-written-in-go/ https://medium.com/@teddyking/namespaces-in-go-basics-e3f0fc1ff69a


#