1. 喜欢 Linux
2. 通常不知道周围发生了什么,需要别人主动提醒
3. 对自己该管的和不该管的事情都很感兴趣
4. 离开现代基础设施就会不知所措
5. 喜欢用显眼的颜色突出重点
6. 在文档和注释里用 emoji
7. 虽然分门别类地整理了很多东西,但是找东西的时候还是找不着
8. 偶尔三言两语,偶尔长篇大论,不过总是有读者说找不到重点在哪
9. 经常被迫给别人擦屁股
10. 时不时就习惯性地做些小动作
11. 对于默认值有自己的想法,第一件事就是把它改掉
12. 在做日常事情时会来回踱步
13. 虽然经常呆呆的,但是偶尔也需要一些强烈的刺激
14. 好不容易接受了新事物,却还是对旧事物难以忘怀
你已经被正式确诊为: systemd
详解:
1. systemd 与 Linux 内核强绑定,不能用于其它(类)Unix 内核
2. systemctl daemon-reload
3. https://syste.md/
4. systemd 需要许多 Linux 内核的现代特性,目前版本至少需要 Linux 5.4+。README 中还清楚地列出了所需的内核构建选项(CONFIG_*)
5. 你一定见过 systemctl 的着色了,以及 https://t.me/PlanetRong/4326
6. https://github.com/search?q=repo%3Asystemd%2Fsystemd+💣&type=code
7. *.{automount,device,local,mount,path,scope,service,slice,socket,swap,target,timer}
8. 读者自证不难
9. 孤儿进程(orphan process)要被最近的 child subreaper 或者 init 收养;使用 systemd 作为 init 时,两者都是 systemd(前者是 systemd --user;后者无需多言)
10. 其实上述第 7 项列出的大部分 unit 类型都是为此服务的(定期或条件性触发其它 unit);sysyemd 还可以定期喂 /dev/watchdog
11. https://github.com/systemd/systemd/blob/f6c81cc80537c207709edd853777c1ba92284bb5/src/core/main.c#L1257
12. [*** ] A start/stop job is running for ...
13. systemd 忽略 SIGINT,除非在 2s 内收到多于 7 次。在虚拟控制台按下 Ctrl+Alt+Del 就会向 init 发送 SIGINT。如果你在关机/重启时不想等上述第 12 项了,就按住 Ctrl+Alt+Del
14. 如果你用过 drop-in 来配置 systemd unit(drop-in 就是 systemctl edit 时会创建的东西,比如 /etc/systemd/system/.service.d/.conf),那么你应该已经被有些属性的行为是 append 而不是 override 的特性坑过了。当你学会了先写一个空属性以清空现有列表,以为 drop-in 真的是一个可加可减机制的时候,你终究会发现有些属性(比如与 unit 依赖相关的 Before=, After=, Requires=, Conflicts=, Wants= 等)是不能被清空的,于是它真的和现实中的可加可减机制一致了
2. 通常不知道周围发生了什么,需要别人主动提醒
3. 对自己该管的和不该管的事情都很感兴趣
4. 离开现代基础设施就会不知所措
5. 喜欢用显眼的颜色突出重点
6. 在文档和注释里用 emoji
7. 虽然分门别类地整理了很多东西,但是找东西的时候还是找不着
8. 偶尔三言两语,偶尔长篇大论,不过总是有读者说找不到重点在哪
9. 经常被迫给别人擦屁股
10. 时不时就习惯性地做些小动作
11. 对于默认值有自己的想法,第一件事就是把它改掉
12. 在做日常事情时会来回踱步
13. 虽然经常呆呆的,但是偶尔也需要一些强烈的刺激
14. 好不容易接受了新事物,却还是对旧事物难以忘怀
你已经被正式确诊为: systemd
详解:
1. systemd 与 Linux 内核强绑定,不能用于其它(类)Unix 内核
2. systemctl daemon-reload
3. https://syste.md/
4. systemd 需要许多 Linux 内核的现代特性,目前版本至少需要 Linux 5.4+。README 中还清楚地列出了所需的内核构建选项(CONFIG_*)
5. 你一定见过 systemctl 的着色了,以及 https://t.me/PlanetRong/4326
6. https://github.com/search?q=repo%3Asystemd%2Fsystemd+💣&type=code
7. *.{automount,device,local,mount,path,scope,service,slice,socket,swap,target,timer}
8. 读者自证不难
9. 孤儿进程(orphan process)要被最近的 child subreaper 或者 init 收养;使用 systemd 作为 init 时,两者都是 systemd(前者是 systemd --user;后者无需多言)
10. 其实上述第 7 项列出的大部分 unit 类型都是为此服务的(定期或条件性触发其它 unit);sysyemd 还可以定期喂 /dev/watchdog
11. https://github.com/systemd/systemd/blob/f6c81cc80537c207709edd853777c1ba92284bb5/src/core/main.c#L1257
12. [*** ] A start/stop job is running for ...
13. systemd 忽略 SIGINT,除非在 2s 内收到多于 7 次。在虚拟控制台按下 Ctrl+Alt+Del 就会向 init 发送 SIGINT。如果你在关机/重启时不想等上述第 12 项了,就按住 Ctrl+Alt+Del
14. 如果你用过 drop-in 来配置 systemd unit(drop-in 就是 systemctl edit 时会创建的东西,比如 /etc/systemd/system/.service.d/.conf),那么你应该已经被有些属性的行为是 append 而不是 override 的特性坑过了。当你学会了先写一个空属性以清空现有列表,以为 drop-in 真的是一个可加可减机制的时候,你终究会发现有些属性(比如与 unit 依赖相关的 Before=, After=, Requires=, Conflicts=, Wants= 等)是不能被清空的,于是它真的和现实中的可加可减机制一致了