进程管理
一,初识进程
进程是已启动的可执行程序的运行实例。进程有以下组成部分。
1,已分配内存的地址空间。
2,安全属性,包括所有权凭据和特权。
3,程序代码的一个或多个执行线程。
4,进程状态。
每个进程都有唯一的进程标识PID,一个PID只能标识一个进程,PPID为父进程ID,需要给该进程分配系统资源。
进程状态是指程序执行过程中的变化。一般分为三类:就绪态,运行态,阻塞态。
二,查看进程
2.1 静态查看进程
ps命令可以查看静态进程,仅仅是捕捉某一个瞬间某一个进程的状态,类似于给进程制造快照。
使用“ps aux”命令查看当前目录的进程,具体如下。
......
基本权限的意义:
用户在查看cpu占用率时,一般会希望进程按照cpu占用百分比的降序排列,此时可使用“ps aux --sort -%cpu”命令,具体如下。
“ps -ef”命令可以查看UID,PID,PPID等信息,具体如下。
“ps axo”命令可以自定义显示的字段,具体如下。
最后,介绍几种常用的查看指定进程PID的方法,具体如下。
(1) cat命令,例如。
cat /run/sshd.pid
(2) pidof命令,例如。
pidof sshd
(3) pgrep命令,例如。
pgrep sshd
2.2 动态查看进程
top命令可以实时动态地显示进程,使用该命令查看进程时,进程信息分为上下两部分,上面为整体信息,下面为每一个进程的信息。
三,信号控制进程
3.1 kill命令
Linux中的kill命令用来终止指定进程的运行。使用“kill -l”命令查看全部信号,具体如下。
3.2 killall命令
killall命令可以用来终止某个指定名称的服务所对应的全部进程。
四,进程优先级
进程优先级是一个数值,动态的优先级和静态的优先级决定了进程被cpu处理的顺序。一个拥有更高进程优先级的进程被cpu处理的概率更高。
4.1 使用top命令查看nice级别
使用top命令可以查看nice级别,其中,NI列表示实际nice级别,PR列将nice级别映射到更大优先级别序列,-20映射到0,+19映射到39,具体如下。
4.2 使用ps命令查看nice级别
使用ps命令查看nice级别,具体如下。
五,作业控制
作业控制是一个命令行功能,允许一个Shell实例运行和管理多个命令。如果没有作业控制,父进程fork()一个子进程后将休眠,直到子进程退出。使用作业控制可以选择性暂停、恢复以及异步运行命令,让Shell可以在子进程运行期间返回接受其他命令。
foreground:前台进程是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。
例如,创建一个sleep进程,在前台运行时可以按ctrl+c组合键停止,具体如下。
background:后台进程没有控制终端,不需要终端的交互。
例如,在后台创建sleep进程,使用ctrl+c组合键并不能结束该进程,其中“&”符号为后台符,具体如下。
六,总结
本次文章讲解了进程的概念,进程的状态,以及如何使用ps与top命令查看进程。