- 进程是程序在一个数据集合上的一次具体执行过程
- 每一个进程都有一个独立的进程号(PID)
- 系统通过进程号来调度操控进程
- Linux操作系统的原始进程是init,init的PID总是1
- 一个进程可以产生另一个进程
- 除了init以外,所有的进程都有一个父进程
进程的五种状态
- 运行(正在运行或在就绪队列中等待)
- 中断(休眠中,在等待某个条件的发生或接收某个信号)
- 不可中断(收到信号不唤醒和不可运行,进程必须等待,直到有中断发生)
- 僵死(进程已终止,但PCB仍存在,直到父进程用wait4()函数 进行系统调用并将其释放)
- 停止(进程收到 SIGSTOP、SIGSTP、SIGTIN、SIGTOU信号后停止运行)
监视进程
ps
- 语法:ps [选项]
- 功能:ps显示系统中进程的信息
- 注意:ps是列出当前相关进程的快照,执行ps命令时 那些在运行的进程
- 如果想要动态的显示进程信息,使用top命令
pstree
- 语法:pstree [选项]
- 功能:以树状方式表现进程的父子关系
top
- 语法:top [选项]
- 功能:提供当前系统中进程的动态视图,显示正在执行进程的相关信息
搜索进程
pgrep
- 语法:pgrep [选项 ] pattern
- 功能:通过程序的名字或其他属性查找进程
- 一般用来判断程序是否正在运行
pidof
- 语法:pidof[选项] program
- 功能:根据确切的程序名称,找出一个正在运行程序的PID
ps | grep
- 语法:ps aux | grep xxx
- 功能:通过管道进行搜索
终止进程
kill
- 语法:kill [信号代码] PID
- 功能:终止一个进程
killall
- 语法:killall [-signall] <进程名>
- 功能:终止指定名称的进程
pkill
- 语法:pkill [options] pattern
- 功能:pkill命令通过进程名称或进程的其他属性来直接终止所有进程
xkill
- 语法:xkill
- 功能:桌面环境下用来杀死进程
进程优先级
nice
- 语法:nice [-options]
- 进程的优先级用nice值来表示
- nice命令可调整程序运行的优先级
- 让使用者在执行程序时指定一个优先级,称为nice值(ADJUST)
- 范围从-20(最高优先级) ~ 19(最低优先级) 供40个等级
- 数值越小优先级越高
- ADJUST默认值为10,
- 只有root用户有权使用负值
- 一般使用者只能往低优先级调整
renice
- 语法:renice priority
- 功能:运行用户修改一个正在运行的进程的优先级
前后台进程
- 默认情况下,一条命令执行后,此命令将独占shell,并拒绝其他输入,称为前台进程。反之,则称为后台进程
- 对应每一个终端,都允许有多个后台进程存在
- 对于前台进程/后台进程 的控制与调度,称为任务控制
将一个前台进程放入后台
- command & -> 将一个进程直接放入后台
- Ctrl + Z -> 将一个正在运行的前台进程暂时停止,并放入后台
控制后台进程
- jobs -> 列出系统作业号和名称
- fg [%作业号] 前台恢复运行
- bg[%作业号] 后台恢复运行
- kill [%作业号] 给对应的作业发生终止信号