Linux实操篇-进程管理
目录
- 传送门
- 前言
- 一、进程管理概念
- 二、进程管理实战
- 1. **查看进程**
- `ps` 命令
- `top` 命令
- `htop` 命令
- 2. **进程的启动和终止**
- 启动进程
- 停止进程
- 使用 `pkill` 或 `killall`
- 3. **进程优先级管理**
- `nice` 和 `renice` 命令
- `top` 中调整进程优先级
- 4. **进程的查看与控制**
- `pgrep` 命令
- `pstree` 命令
- `strace` 命令
- 5. **进程的后台和前台管理**
- `fg` 和 `bg` 命令
- `disown` 命令
- 6. **系统进程和守护进程管理**
- 使用 `systemd` 管理服务
- 7. **资源限制和监控**
- `ulimit` 命令
- `lsof` 命令
- 总结
传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
前言
不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。
以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇
一、进程管理概念
进程查询
进程终止
二、进程管理实战
在 Linux 系统中,进程管理是系统管理员和开发者日常操作中非常重要的一部分。进程是操作系统执行的一个程序的实例,涉及创建、调度、终止等多个方面。Linux 提供了多种命令和工具来管理进程。以下是一些常见的进程管理操作和相关命令的详细介绍。
1. 查看进程
ps
命令
ps
命令用于显示当前正在运行的进程。它有很多选项,可以自定义输出内容。
-
查看所有进程:
ps -ef
-
查看当前用户的进程:
ps -u <用户名>
-
查看某个进程的详细信息:
ps -p <进程ID>
-
查看实时更新的进程信息:
top
-
查看所有进程(包括子进程):
ps aux
top
命令
top
命令用于动态查看系统中运行的进程,并显示 CPU 和内存等资源使用情况。它会不断更新,默认每隔 3 秒刷新一次。
-
启动
top
:top
-
在
top
界面中按下:P
:按 CPU 占用排序M
:按内存占用排序q
:退出top
htop
命令
htop
是 top
命令的一个增强版,提供了更加友好的交互界面,但并不是所有系统默认安装,需要手动安装。
-
安装
htop
:sudo apt-get install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL
-
启动
htop
:htop
2. 进程的启动和终止
启动进程
-
使用后台执行程序:
command & # 在后台运行命令
-
使用
nohup
命令启动进程并使其在终端关闭后继续运行:nohup command & # 将命令放入后台并且忽略挂断信号
停止进程
-
使用
kill
命令发送信号终止进程:kill <进程ID> # 向进程发送 SIGTERM(默认)
-
强制杀死进程(发送 SIGKILL 信号):
kill -9 <进程ID>
-
如果不确定进程的 ID,可以使用
ps
或top
命令查找。
使用 pkill
或 killall
-
pkill
允许通过进程名称来杀死进程:pkill <进程名称>
-
killall
也可以通过进程名称来终止进程:killall <进程名称>
3. 进程优先级管理
nice
和 renice
命令
-
nice
用于启动一个进程时指定其优先级,优先级值的范围是 -20(最高优先级)到 19(最低优先级),默认为 0。- 启动时设置优先级:
nice -n 10 command # 设置优先级为 10
- 启动时设置优先级:
-
renice
用于修改正在运行的进程的优先级:renice -n 5 -p <进程ID> # 将进程的优先级设置为 5
top
中调整进程优先级
在 top
界面中,可以通过按下 r
键来修改进程的优先级(即调整 nice 值)。
4. 进程的查看与控制
pgrep
命令
pgrep
根据指定的模式查找进程,并返回匹配的进程 ID。
- 查找名为
apache2
的进程:pgrep apache2
pstree
命令
pstree
显示进程树,显示进程间的父子关系。
-
查看进程树:
pstree
-
查看特定进程的进程树:
pstree <进程ID>
strace
命令
strace
用于跟踪系统调用和信号,可以帮助你调试和分析进程的行为。
-
跟踪一个进程:
strace -p <进程ID>
-
跟踪一个命令的系统调用:
strace command
5. 进程的后台和前台管理
fg
和 bg
命令
-
fg
命令将后台进程带到前台:fg %1 # 将作业号为 1 的后台进程带到前台
-
bg
命令将暂停的进程放到后台继续运行:bg %1 # 将作业号为 1 的进程放到后台
-
查看后台进程:
jobs
disown
命令
disown
命令用于从 shell 的作业表中移除一个作业,使其在退出终端时不被终止。
command & # 启动一个后台进程
disown %1 # 移除作业号为 1 的进程
6. 系统进程和守护进程管理
使用 systemd
管理服务
现代 Linux 系统(如 Ubuntu 16.04 及更高版本、CentOS 7 及更高版本)使用 systemd
来管理系统进程和服务。常见的命令包括:
-
查看正在运行的服务:
systemctl list-units --type=service
-
启动服务:
sudo systemctl start <服务名称>
-
停止服务:
sudo systemctl stop <服务名称>
-
重启服务:
sudo systemctl restart <服务名称>
-
启用服务开机启动:
sudo systemctl enable <服务名称>
-
禁用服务开机启动:
sudo systemctl disable <服务名称>
-
查看服务状态:
systemctl status <服务名称>
7. 资源限制和监控
ulimit
命令
ulimit
用于显示或设置进程可以使用的资源限制(如最大文件描述符、最大进程数等)。
-
查看当前限制:
ulimit -a
-
设置资源限制(例如,设置最大文件打开数为 1024):
ulimit -n 1024
lsof
命令
lsof
用于列出当前系统中打开的文件及与其相关的进程。这个工具对调试和管理资源非常有用。
-
查看某个进程打开的文件:
lsof -p <进程ID>
-
查看某个文件被哪些进程打开:
lsof <文件路径>
总结
- 查看进程:使用
ps
、top
、htop
和pstree
命令。 - 管理进程:使用
kill
、pkill
、killall
、bg
、fg
和disown
等命令。 - 进程优先级:通过
nice
和renice
调整进程的优先级。 - 后台管理:使用
bg
和fg
将进程移到后台或前台。 - 系统服务管理:使用
systemctl
管理守护进程和服务。
这些工具和命令是 Linux 系统中进程管理的基本组成部分,掌握它们能帮助你更高效地管理和调试系统中的进程。