进程和程序之间的区别:
程序是一个静态的概念,进程是程序执行的过程,是动态的。进程之间具有父子关系

Linux中查询进程使用pstree –p进行查询,如果没有pstree命令:
在RHEL7和Centos7中
Systemd(1)为1号进程是在程序启动时启动的,是所有程序的父进程,RHEL6中的1号进程不是systemd,是init(1)

ps是查询进程的指令
man ps之后可以查询到进程状态的codes
D:不可中断式进程,通常是I/O设备有问题 Network,disk的I/O有问题(只能用重启来解决)
可能产生的原因:进程访问磁盘数据的时候,内核会帮助进程访问磁盘的数据,内核识别硬件并访问数据,访问不到,他的进程状态会从R  D
R:运行的或者将要运行的
S:可中断式进程
T:某个进程被停止
X:死亡状态,在进程被中止时都会有的状态
Z:僵尸进程,说明内核有问题。让子进程中止时,会告诉父进程自己已经中止,父进程没有收到子进程的信息(例如程序bug),这样的子进程就会变成一个僵尸进程。

ps命令常用选项:
ps是查询当前终端中的进程 ps –a 查询所有终端中的进程
ps a 通常情况下使用ps a 命令
ps au 查询进程的拥有者
ps aux 查询后台进程(很多)
每一列的参数:
USER:进程拥有者,谁运行的
PID:进程的ID
%CPU:进程占用CPU的百分比,以一颗逻辑核心为百分之百计算,会出现200%的现象
%MEM:占用内存的百分比
VSZ:进程的虚拟空间的大小,向内核申请的程序需要的内存空间(虚的),内核会将申请的空间分配给程序,当真正运行的时候会直接使用申请的内存空间中的地址空间
RSS:进程实际从系统中获得的内存大小
TTY:在哪一个控制台中执行
STAT:进程状态
START:进程启动的时间
TIME:进程从启动到现在持续占用CPU的时间
COMMAND:进程的名字

可以使用grep来过滤想要的进程

除了ps可以查询命令还可以使用top

和进程做交互使用kill命令
kill –l ,列出所有的信号和进程做交互时是对它发出信号

常用信号:
1:重新初始化进程
2:键盘终端(ctrl+c) kill -2 1000 =ctrl+c
9:强制杀死进程
18:把一个进程继续运行
19:把一个进程暂停运行
20:把前台的进程放到后台并且暂停(ctrl+z)
10:针对dd这条命令