进程管理
1.进程与程序
(1)程序与进程定义
程序是一组指令与参数的集合,按照既定的逻辑控制计算机运行用来完成特定的任务。
进程是运行着的程序,是操作系统执行的基本单位,是程序运行的过程,动态,有生命周期及运行状态。
- 从用户角度:进程是程序的一次动态的执行过程。
- 从操作系统:是操作系统分配的内存,CPU时间片等资源的基本单位
- 进程是资源分配的最小单位
(2) 进程与程序的区别
- 程序是静态的(一组指令的集合),但是进程是程序运行的动态过程
- 进程与程序不是一一对应关系,相同的程序在不同的数据集上运行就是不同的进程
- 进程具有并发性和交往性,但是程序是封闭的
(3)扩展(进程与线程的区别)
- 一个进程拥有多个线程,但一个线程只能被一个进程所拥有
- 线程不能单独执行,但每一个线程都有程序的入口,执行序列以及程序出口,必须组成进程才能被执行
2.进程管理工具
(1)pstree
pstree:用于查看进程树之间的关系,谁是父进程,谁是子进程,看出谁创建了谁。
用法:pstree 选项
选项:-A:各进程树之间以ASCII码字符来连接
-U:各进程树之间以 utf-8字符来来连接
-p:列出每个进程的PID
-u:列出每个进程的所属账号名称
选项 | 含义 |
---|---|
-A | 各进程树之间以ASCII码字符来连接 |
-U | 各进程树之间以 utf-8字符来来连接 |
-p | 列出每个进程的PID |
-u | 列出每个进程的所属账号名称 |
[root@localhost ~]# pstree -A
systemd-+-NetworkManager---2*[{
NetworkManager}]
|-VGAuthService
|-auditd---{
auditd}
|-crond
|-dbus-daemon---{
dbus-daemon}
|-firewalld---{
firewalld}
|-login---bash
|-master-+-pickup
| `-qmgr
|-polkitd---6*[{
polkitd}]
|-rsyslogd---2*[{
rsyslogd}]
|-sshd-+-sshd---bash---pstree
| `-sshd---sftp-server
|-systemd-journal
|-systemd-logind
|-systemd-udevd
|-tuned---4*[{
tuned}]
`-vmtoolsd---{
vmtoolsd}
(2)ps
ps:显示进程瞬间的运行状态
用法:ps 选项
选项: -a A 显示所有进程
-u 显示以用户为主的进程
-x 显示完整信息 与a一起使用
-l 显示详细信息
选项 | 含义 |
---|---|
-a A | 显示所有进程 |
-u | 显示以用户为主的进程 |
– | – |
-x | 显示完整信息 与a一起使用 |
-l | 显示详细信息 |
[root@localhost ~]