进程跟程序有什么区别
程序由代码及命令集合组成的。是一个静态的概念,存放在磁盘中,永久的存在。
进程是程序在系统上运行的一种机制,是一个动态的概念,存放内存中,随着程序启动,运行,终止,消除等操作影响。
进程是有生命周期用户打开一个程序,程序启动,父进程收到任务,fork生成一个子进程,子进程会继承父进程的任务,处理任务,父进程进入等待,在这时,如果父进程退出了,子进程还在工作中,就没有父进程进行管理,就会变成僵尸进程。每个进程都有自己的PID PPID。如果父进程没有退出,子进程任务完成,子进程退出。

监控进程状态

静态

[root@qls ~]# ps aux ps 静态的显示当前进程的状态信息

a          所有进程
u         显示有效用户及id号
x         把没有终端的进程显示出来
USER    进程运行的用户    
PID     进程运行的ID号   PID
%CPU     进程占用CPU的百分比
%MEM      进程占用内存的百分比  
VSZ        虚拟内存集    进程所占用的虚拟内存的空间       
RSS     物理内存集    进程所占用的物理内存的空间
TTY     进程运行的终端  

    ?            系统或者内核运行的终端
    tty1        机器终端,虚拟机本地VMware
    pts/0        远程连接的终端  0  第一个  
    pts/1        第二个远程连接终端
STAT     进程状态 

    S      在休眠状态
    s    父进程,表示下面有子进程
    R     运行中
    N     优先级低
    <    优先级高
    +    表示前台运行
    l     使用线程运行
    |    多线程运行
    T     暂停的或者被追踪进程
    Z     僵尸进程
    D    无法终止的休眠状态进程
START     进程运行启动时间
TIME     进程占用CPU的运行时间
COMMAND    进程所执行的指令
    []        内核态,系统运行的
    无[]    用户态的进程

动态

top 实时显示系统状态信息
[root@qls ~]# top

10:58:29            当前系统时间  
up 2 days, 31 min    系统从开机到现在的运行时间
3 users                终端的数量,用户的登录数量
load average: 0.04, 0.04, 0.05        平均负载     1分钟  5   15分钟的负载情况
Tasks:     任务  
118 total,    总任务的个数     
1 running,         1个在运行
116 sleeping,   116个在休眠
1 stopped,       1个停止
0 zombie        0个僵尸
%Cpu(s):      程序占用CPU的时间百分比
0.0 us,      用户态的  
0.0 sy,      系统态的
0.0 ni,        优先级程序占用cpu时间百分比
100.0 id,   空闲的
0.0 wa,      等待io线程的占用cpu时间百分比
0.0 hi,     硬中断占用cpu时间百分比 
0.0 si,      软中断占用cpu时间百分比
0.0 st        虚拟机窃取宿主机的CPU时间百分比    

KiB Mem :   995740 total,   132080 free,   446868 used,   416792 buff/cache
物理内存的状态     总的        剩余的        使用的          缓冲或缓存
KiB Swap:  3121144 total,  3068672 free,    52472 used.   380396 avail Mem 
虚拟内存的状态  

PID USER    PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+  COMMAND
PID     进程id
USER    进程运行的用户  
PR      优先级,一般显示20   
NI      优先级,一般显示0     优先级的值越小,优先级越高
VIRT    虚拟内存占用
RES     物理内存占用 
SHR     共享内存的占用
S         状态 
%CPU     占用CPU的使用百分比
%MEM    占用内存的使用百分比
TIME+   进程占用CPU的时间    
COMMAND    执行的指令

htop实时显示系统状态信息,top的升级版

top  

    -d    指定更新的时间

    -p    显示指定的进程号信息

    -u    显示指定用户的进程信息

中断    
硬中断          处理速度的快的任务  
软中断      将处理时间长的放入到后台,系统其它机制进行处理

## 查看系统性能的命令
iotop     iftop    glances  top   htop  w   uptime   free   df  netstat  ss  

# 进程管理
怎么关闭进程 查看kill  的信号  
1) SIGHUP        重载,重新加载配置文件,进程号不变的    nginx    reload    
9) SIGKILL        强制    
15) SIGTERM        默认,终止进程  
[root@qls ~]# kill  78869        #终止进程

[root@qls ~]# kill  -9  78869        #强制终止   

#结束多个进程 
[root@qls ~]# ps  aux |grep  [t]op
root      84160  0.1  0.2 161992  2188 pts/0    S+   11:50   0:00 top
root      84164  0.2  0.2 122456  2108 pts/2    S+   11:50   0:00 htop
[root@qls ~]# ps  aux |grep  [t]op |awk  '{print $2}' |xargs  kill  -9


killall      结束进程的命令,根据进程名称终止进程,进程不存在,会报错 
[root@qls ~]# yum install  -y  psmisc
pkill     结束进程的命令,根据进程的名称进行终止,进程不存在,不会报错模糊终止 ,包含进程名称,都给终止

后台进程管理

前台运行的程序,如果不小心退出了终端,对应的前台程序也会退出   
早期使用nohup  &    
[root@qls ~]# nohup   tar  czf  etc.tar.gz   /etc/  /var/   &  
使用  
rtl键+z 放入到后台,停止状态  
jobs          查看后台的所有的程序  
bg          让一个后台的程序进行运行   
fg             让一个后台的程序放到前台运行   
    % id    
screen         后台运行的指令,重新打开一个新的会话窗口执行指令  

    -S      创建一个新的会话窗口时,并起一个名称  

    -list     显示screen存在的会话列表

    -r       进入指定会话  
话中操作   
Crtl键+a+d    临时退出会话窗口  
exit           退出
Copyright © 高程程 all right reserved,powered by Gitbook修订于: 2021-05-18 21:14:13

results matching ""

    No results matching ""