kill、pkill、killall 在终止进程时有什么区别,误用风险是什么?
分析kill、pkill、killall的定位与匹配差异,重点指出killall在不同Unix平台上的危险行为,并给出先pgrep再kill的安全实践原则,避免误杀他人进程。
程序员面试题库第 52 页,收录第 2551–2600 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
分析kill、pkill、killall的定位与匹配差异,重点指出killall在不同Unix平台上的危险行为,并给出先pgrep再kill的安全实践原则,避免误杀他人进程。
围绕“服务在本机 127.0.0.1 能通但外部访问不通,按什么顺序排查”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按绑定地址 0.0.0.0、防火墙/安全组、路由三层依次验证的命令顺序。
围绕“应用不支持重开日志文件时,logrotate 该用 copytruncate 还是信号通知,各自风险是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较 copytruncate 复制截断的丢日志窗口与 create+信号重开的依赖条件。
围绕“lsof 除了看打开文件,还能回答哪些排障问题?举三个不同场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用端口占用、已删除文件持有者、某进程全部网络连接三个互不相同场景说明,不与单独的 ss 题重复结论。
围绕“free 显示 available 远小于 used 就是内存泄漏吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 page cache 可回收性、available 列含义及判断真实内存压力的正确指标。
围绕“怀疑某进程内存泄漏,如何用 /proc 和工具确认 RSS 持续增长”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 /proc/pid/status 的 VmRSS 采样与 pmap/smaps 定位增长段的方法。
围绕“小请求正常大请求超时,为什么可能是 MTU/分片问题,如何验证”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 ping -M do -s 探测路径 MTU 及 PPPoE/VPN 封装降低 MTU 的典型场景。
围绕“如何发现网卡丢包或错误导致网络时好时坏”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 ip -s link 与 ethtool -S 的 error/drop 计数判断链路层问题。
围绕“CPU 紧张时如何用 nice/renice 降低批处理任务影响而不停掉它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 nice 值与调度权重关系、非 root 只能降不能升的限制。
围绕“进程被系统莫名杀掉,如何确认是 OOM Killer 干的并调整 oom_score”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 dmesg/journalctl 查 OOM 记录的方法及 oom_score_adj 保护关键进程的方式。
围绕“孤儿进程和守护进程在进程树上表现有何不同,如何让进程脱离终端存活”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分被 init 收养的孤儿与主动 daemon 化进程,并比较 nohup、setsid、disown 的适用场景。
围绕“文件权限看起来没问题却仍 Permission denied,要检查哪些层次”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖路径上各级目录的 x 权限、ACL(getfacl)与挂载选项三层。
围绕“ping 得通但 TCP 端口连不上,如何区分拒绝连接与超时两种失败”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 RST(拒绝)与无响应(丢包/防火墙 DROP)区分定位方向,配合 nc/curl -v 验证。
围绕“管道中某个中间命令失败但脚本仍继续,为什么 set -o pipefail 能解决这个问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释管道默认只取末命令退出码及 pipefail 的语义与代价。
本文解释 Linux 进程 D 状态的不可中断睡眠原理,说明 kill 无效的原因,并给出用 /proc/pid/stack、dmesg 和 ps 定位 IO 卡点的方法,强调必须恢复底层设备而非强杀进程。
围绕“排查异常进程时 ps aux、ps -ef 与 pstree 各自适合回答什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按诊断目标(资源排序、完整命令行、父子关系)区分三者输出,不罗列全部 ps 选项。
围绕“文件系统突然变只读,应用写文件报错怎么处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明内核检测到 IO 错误后 remount-ro 的保护机制及 dmesg 查错、修复流程。
围绕“Linux 目录上的 r、w、x 权限分别控制什么操作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分目录读列表、写增删条目、x 进入与访问三者的具体行为差异。
本文解释 SIGTERM 与 SIGKILL 的本质区别:可捕获性。说明为何排障时先尝试 SIGTERM,分析 SIGKILL 的残留风险,并给出具体场景和边界判断。
围绕“进程响应变慢时如何用 strace 找到它卡在哪类系统调用上”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 strace -p 附加、-c 统计耗时分布与识别 connect/futex 卡住的读法。
围绕“如何为运维脚本配置最小权限的 sudo 免密执行而不开放全部命令”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 visudo 限定具体命令与参数的写法及通配符绕过风险。
围绕“SUID、SGID、sticky bit 在运维中各自解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 passwd 提权、共享目录组继承、/tmp 防误删三个实例说明。
围绕“如何确认系统卡顿是由 swap 换入换出引起的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用 vmstat 的 si/so 非零持续值与 iostat 佐证 swap IO。
围绕“tail -f 在日志轮转后不再输出新内容,为什么,怎么解决”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释轮转后文件被替换 inode 变化导致 -f 失效、-F 按文件名重开。
围绕“服务器出现大量 TIME_WAIT 连接,是问题吗,如何确认来源”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释主动关闭方进入 TIME_WAIT 的原因、用 ss 统计对端分布判断是否正常。
围绕“如何用 tcpdump 抓包确认请求是否到达服务器、响应是否发出”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出按 host/port 过滤、-i 指定网卡、-w 存包的最小命令集及“入方向无包则问题在上游”的判断。
围绕“如何在运维脚本中防止某条命令无限挂住:timeout 的正确用法与退出码”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 timeout 发 TERM/KILL 的两段式与 124 退出码判断超时。
围绕“应用报 Too many open files,如何确认限制值并定位句柄泄漏点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 ulimit -n 与 /proc/pid/limits,用 lsof -p 统计句柄类型定位泄漏。
本文解释 load average 包含 D 状态任务,CPU 低时如何通过 ps 查 D 进程、iostat 验 IO,区分 CPU 与 IO 瓶颈。
围绕“改了 /etc/security/limits.conf 但服务句柄限制没生效,为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 limits.conf 只经 PAM 登录会话生效、systemd 服务需 LimitNOFILE 的关键差异。
围绕“umask 如何决定新建文件和目录的默认权限,运维排障中何时需要检查它”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 022/002 对 666/777 基值的掩码计算及排查“程序生成文件别人读不了”的场景。
围绕“要对几万个文件执行命令,xargs 相比 for 循环快在哪,-P 并行有什么坑”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 xargs 减少进程 fork 次数的批量机制及 -P 并发的输出交错与退出码问题。
本题讲解 Linux 僵尸进程的产生机制、用 ps 定位父进程 PPID 的方法,以及为何只有父进程 wait 才能回收。给出排查步骤和应急处理,区分僵尸与孤儿进程,并说明 kill 无效的原因。
围绕“MongoDB 聚合中 $group 累加器内存超限的原因和处理方式是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确分组中间结果 100MB 限制、allowDiskUse 及分片集群的拆分执行。
围绕“MongoDB 聚合输出 $merge 和 $out 写回集合的语义差别是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 $out 整体替换与 $merge 按条件更新/插入的差异及分片集合上的限制。
围绕“MongoDB 聚合管道中 $match 和 $limit 的顺序为什么影响性能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明管道尽早缩减数据集及优化器自动重排的边界。
本题解释MongoDB中无界数组反模式的三大后果:16MB文档上限、多键索引膨胀、查询性能退化,并通过具体场景和判断边界给出可操作的设计原则。
围绕“MongoDB 的 Attribute Pattern 如何用键值数组解决稀疏字段的索引问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明把稀疏属性转为 {k,v} 数组后可用单一多键索引覆盖的原因。
围绕“MongoDB 分片集群中查询不带分片键时 mongos 的广播查询为什么慢”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确路由规则、scatter-gather 代价及如何利用分片键定位单分片。
围绕“MongoDB 单个文档 16MB 的 BSON 限制对 schema 设计有哪些具体约束”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明超大数组、大文本字段的处理方式及 GridFS 的适用边界。
本文解释Bucket Pattern如何用数组和start/end字段把高频传感器数据按时间窗口聚合,减少文档数和索引信息。给出桶大小与查询粒度的权衡及选择方法,并讨论16MB限制和可能的反模式陷阱。
围绕“MongoDB 的因果一致会话解决客户端怎样的读写顺序问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确写后读自己写入及跨从库单调读的保证边界。
围绕“MongoDB Change Streams 断线后如何用 resume token 续传,oplog 回滚会怎样”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 resume token 失效场景与 startAfter 的兜底。
围绕“MongoDB 复合索引的字段顺序如何决定等值、排序、范围查询能否命中”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按等值-排序-范围规则解释顺序设计。
围绕“MongoDB 的 Computed Pattern 解决什么场景,如何避免每次读都做昂贵计算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确预计算字段写入时机与一致性代价的取舍。
围绕“MongoDB 覆盖查询需要满足什么条件才能完全不读文档”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明投影中排除 _id 等细节。
解释MongoDB嵌入与引用文档的适用场景,核心从基数、无界增长和读写模式三个维度判断,并结合条件给出工程决策。
围绕“如何用 MongoDB explain 的执行统计判断一个查询是否发生了全表扫描”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 winningPlan 阶段、docsExamined 与 nReturned 比值的诊断方法。
围绕“MongoDB 的 Extended Reference Pattern 在哪些字段上冗余,如何避免回表查询”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确冗余字段的更新传播代价。
围绕“MongoDB 的 2dsphere 和 2d 索引分别支持哪些地理查询”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确球面与平面几何的适用边界及 $near/$geoWithin 的要求。