进程管理
大约 4 分钟
进程状态
Linux上进程有5种状态:
提示
- R 运行 runnable (正在运行或在运行队列中等待)
- S 中断 sleeping (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- D 不可中断 (收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- Z 僵死 (进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- T 停止 (进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
查看进程
杀死进程
僵尸进程
僵尸进程是父进程未调用wait()
系列函数回收导致的
# 单独查看僵尸进程信息 PID、PPID、进程名
ps -eo pid,ppid,stat,cmd | grep 'Z'
处理方式
# 1 优雅重启父进程
systemctl restart 服务名
# 强制杀死父进程
kill -9 <父进程PPID>
LSOF 一切皆文件
lsof
(List Open Files)是 Linux 和 Unix 系统中一个强大的工具,用于查看当前系统打开的文件和资源。由于在 Unix 系统中,一切皆文件(包括网络套接字、设备文件等),lsof
可以帮助你:
- 查找文件被哪个进程占用
- 诊断网络连接问题
- 监控系统资源使用情况
- 识别僵尸进程
- 调试文件系统挂载问题
# 查看网络连接
lsof -i
# 查看监听端口
lsof -iTCP -sTCP:LISTEN -n -P
# 查看特定进程的文件
lsof -p PID
# 查看已经删除文件还存在的进程
lsof | grep deleted
# 查找占用文件的进程
lsof /path/to/file
# 查看特定用户的文件
lsof -u user
文件锁
chattr
用于修改文件或目录的特殊属性,其基本语法为:chattr [选项] [属性] 文件/目录
。
属性 | 含义 | 适用场景 |
---|---|---|
i | 设为不可变,无法删除、修改、重命名,只有 root 可设置或取消 | 保护系统关键配置文件,如/etc/passwd |
a | 仅允许追加内容,不能删除、修改现有内容,适合日志文件 | /var/log/messages 等日志文件 |
u | 删除文件后数据仍保留,可恢复 | 重要数据文件,防止误删后无法恢复 |
s | 删除文件时彻底擦除数据,无法恢复 | 敏感文件,避免数据泄露 |
d | 备份时跳过该文件,不被 dump 命令备份 | 临时文件或无需备份的文件 |
# 给文件添加不可变属性,无法修改和删除
chattr +i /etc/fstab
# 查看文件的 “隐藏属性”
lsattr /etc/fstab
# 递归查看目录下所有文件属性
lsattr -R /var/log