Linux笔记之进程管理
Linux系统的进程管理是系统管理的重要组成部分。通过对进程的查看、控制和调度,可以确保系统的稳定运行并提高资源的利用率。本章将详细讲解如何使用命令管理Linux进程,包括进程查看、进程控制与杀死,以及后台任务的调度与管理。
一、进程管理基础
1、什么是进程
- 进程:进程是正在运行的程序的实例。每个进程都有一个唯一的进程ID(PID),它由操作系统内核分配并管理。
- 进程状态:进程可能处于以下几种状态:
- 运行中(Running):进程正在执行或准备执行。
- 休眠(Sleeping):进程正在等待某个事件或资源。
- 僵尸(Zombie):进程已终止,但其信息尚未被父进程回收。
- 停止(Stopped):进程被信号停止。
二、查看进程
1、ps
:显示进程信息
ps
命令用于显示系统中当前运行的进程信息。
-
常用选项:
ps aux
:显示所有进程。ps -ef
:以另一种格式显示所有进程。
-
示例:
ps aux | grep apache
输出结果:
root 1234 0.1 1.5 123456 56789 ? Ssl 12:00 0:00 apache2 www-data 5678 0.0 0.8 234567 23456 ? S 12:00 0:00 apache2
字段说明:
- USER:进程的所属用户。
- PID:进程ID。
- %CPU:进程占用的CPU百分比。
- %MEM:进程占用的内存百分比。
2、top
:实时监控系统进程
top
命令提供动态实时的系统进程信息,包括CPU、内存使用情况。
-
运行命令:
top
-
常用交互键:
q
:退出。P
:按CPU使用排序。M
:按内存使用排序。
-
示例输出:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 1234M 234M 12M S 50.0 1.2 0:05.32 apache2
3、htop
:更友好的实时进程监控工具
htop
是top
命令的增强版,提供了更直观的界面,需要安装后使用。
-
安装命令:
sudo apt install htop # Debian/Ubuntu 系 sudo yum install htop # CentOS/RHEL 系
-
运行命令:
htop
-
优点:
- 支持上下键选择进程。
- 可以直接杀死进程。
三、管理进程
1、kill
:结束进程
kill
命令通过发送信号来终止进程,默认信号为TERM
(15),即请求终止。
-
基本用法:
kill PID
-
强制终止进程:
kill -9 PID
2、pkill
:按名称终止进程
pkill
命令可以直接通过进程名称终止对应的所有进程。
- 基本用法:
pkill apache2
3、nice
与renice
:调整进程优先级
nice
:启动进程时指定优先级
- 用法:
说明:优先级范围为-20(最高优先级)到19(最低优先级),默认值为0。nice -n 10 ./script.sh
renice
:调整正在运行进程的优先级
-
用法:
renice -n 5 -p PID
输出结果:
1234 (process ID) old priority 0, new priority 5
四、系统调度与后台任务
1、cron
:定时任务管理
cron
是Linux中最常用的定时任务调度工具,基于crontab
文件管理任务。
crontab
文件语法:
* * * * * command
每个星号表示时间字段(分钟、小时、日、月、周)。
示例:
每隔5分钟执行一次脚本:
*/5 * * * * /path/to/script.sh
管理命令:
- 编辑定时任务:
crontab -e
- 查看当前用户的任务:
crontab -l
2、at
:一次性任务调度
at
命令用于设置一次性任务,时间可以使用人类可读格式(如now + 5 minutes
)。
-
安装
at
:sudo apt install at # Debian/Ubuntu 系 sudo yum install at # CentOS/RHEL 系
-
用法:
echo "sh /path/to/script.sh" | at now + 5 minutes
-
查看队列:
atq
-
移除任务:
atrm JOB_ID
3、nohup
:后台运行任务
nohup
命令允许任务在用户退出后仍然继续运行,通常与&
符号配合使用。
-
用法:
nohup ./script.sh &
-
查看任务日志:
默认日志会保存到nohup.out
文件中。
五、小结
通过本章节的学习,你已经掌握了Linux进程管理的常见命令和技巧。主要内容包括:
- 查看进程:使用
ps
、top
、htop
命令动态查看进程状态与系统性能。 - 管理进程:通过
kill
、pkill
、nice
、renice
命令终止或调整进程优先级。 - 后台任务调度:学习了如何使用
cron
进行定时任务管理,at
进行一次性任务设置,以及nohup
实现后台任务运行。
熟练使用这些命令和工具,可以高效管理Linux系统中的进程和任务,保障系统稳定性并提高工作效率。