本文主要讲解 Linux 进程控制类命令,这些命令在工作中十分常用,本博主会给出具体实例和运行截图进行讲解
1. 程序与进程概念:
程序:是一个包含可执行代码的文件,存放在磁盘等介质上,属于静态概念
进程:当程序被操作系统装载到内存中并分配给它一定的资源后,此时可称为进程,属于动态概念
下面是进程状态转换图:
1. ps
英文原意:report a snapshot of the current processes.(报告当前进程的快照)
功能描述:ps 命令是用来显示系统瞬间的进程信息,它可以显示出在用户输入 ps 命令时系统的进程及进程的相关信息
语法:ps [options]
常用参数:
-l:长格式输出
-u:按用户名和启动时间的顺序来显示进程
-j:用任务格式来显示进程
-f:用完整列表格式来显示进程
-a:显示用户所有进程(包括其他用户)
-x:显示无控制终端的进程
-r:显示运行中的进程
实例:
通常我们经常使用 ps -aux 来查看系统和每个用户的进程:
但是如果我们想对上面列出那些进程进行进一步的筛选怎么办,比如:我只想看到用户为 mr.s 的全部进程呢?(工作中最常用)
ps -aux | grep mr.s
2. top
英文原意:display Linux processes(显示 linux 进程)
功能描述:动态监视系统任务的工具,输出的结果是连续的(类似 Windows 的任务管理器)
语法:top [options]
常用参数:
-b:以批量模式运行,但不能接收命令行输入
-c:显示命令行,而不仅仅是命令名
-d N:显示两次刷新的时间间隔,比如 -d 5,表示两次刷新时间间隔为 5 秒
-i:禁止显示空闲进程或僵尸进程
-n NUM:显示更新次数,然后退出。比如 -n 5,表示 top 更新 5 次数据就退出
-p PID:仅监视指定进程的 PID
-q:不经任何延迟就刷新
-s:安全模式运行
-S:累积模式,输出每个进程总的 CPU、MEM 等时间
实例:
top -d 5 (指定 5 秒一刷新)
在此界面中,
按下 u 键,输入对应的用户名,可以查看到该用户的运行进程情况
按下 k 键,输入对应运行进程的 PID,则可以杀死该进程
1. kill
英文原意:terminate a process(终止一个进程)
功能描述:该命令用于向某个进程(通过 PID 标识)传送一个信号,它通常与 ps 和 jobs 命令一起使用
语法:kill -signal pid...
signal 参数如下:
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入 ctrl+c,中断一个程序的运行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来结束进程
17:SIGSTOP,相当于输入 ctrl+z,暂停一个进程的进行
实例:
kill -9 1024(强制杀死 PID 为 1024 的进程)
2. killall
英文原意:kill processes by name(通过进程名称杀死进程)
功能描述:该指令使用进程名称来杀死进程,使用此指令可以杀死一组同名进程
它与 kill 的区别:kill 是杀死指定 PID 的进程,但是要查询到指定进程的 PID,首先要使用 ps -aux | grep xxx 查找到要杀死的进程 PID,再通过 kill 命令进行杀死,而 killall 指令将这两个过程合二为一
语法:killall [options] name...
常用参数:
-e,--exact:对长名称进行精确匹配
-I, --ignore-case:忽略大小写的不同
-i, --interactive:交互式杀死进程,杀死之前需要进行确认
-l, --list:打印所有已知信号列表
-q, --quiet:如果没有进程被杀死,则不输出任何信息
-r, --regexp:使用正则表达式匹配要杀死的进程名称
-s, --signal:用指定的进程号代替默认信号 “SIGTERM”
-u, --user:杀死指定用户的进程
实例:killall game(杀死进程名为 game 的进程)
3. nice
英文原意:run a program with modified scheduling priority(使用修改的调度优先级运行程序)
功能描述:nice 命令允许再默认优先级的基础上进行增大或减小的方式来运行程序
语法:nice [OPTION] [COMMAND [ARG]...]
优先级的调整范围:-20 ~ 19,数值越小优先级越高
若 nice 命令未指定优先级的调整值,默认在原优先级的基础上加 10
常用命令:
-n, --adjustment=N:add integer N to the niceness (default 10),指定程序运行优先级的调整值
实例:
nice -n -5 myprogram& (在后台以通常运行优先级为 -5 的优先级运行 myprogram )
4. renice
英文原意:alter priority of running processes(改变正在运行进程的优先级)
功能描述:改变正在运行进程的优先级
语法:renice [-n] priority
常用参数:
-n, --priority:指定程序运行优先级的调整值
实例:
renice -5 777(将正在运行的 PID 为 777 的进程优先级改为 -5)
1. &
功能描述:将进程放到后台运行
实例:
cp -r /user/* test &(将 /user 目录下的所有子目录及文件复制到 test 目录下这个工作进程放到后台运行)
2. 键盘输入
ctrl + z:进程挂起
ctrl + c:进程终止(常用)
3. 进程恢复
fg [n]:将指定 n 的进程恢复到前台继续运行
bg [n]:将指定 n 的进程恢复到后台继续运行
实例:
先输入 man ls,然后按 ctrl + z 将该进程挂起,然后通过 jobs 查看被挂起的进程,然后通过 bg 1,将被挂起的进程放到后台继续运行,最后通过 fg 1,将后台的进程放到前台运行
4. jobs
功能描述:查看被挂起的进程
语法:jobs
实例:jobs