linux 系统进程

进程:是已经启动的可执行的运行实例

组成

  • 已分配内存的地址空间
  • 安全属性,包括所有权凭据和特权
  • 程序代码的一个或多个执行线程

进程状态

  • 程序:二进制文件
  • 进程:是程序运行时的过程,动态,有生命周期及运行状态
父进程复制自己的地址空间创建一个新的进程结构,每个新进程分配一个唯一的进程IP(PID),满足跟踪安全性,

PID和父进程(PPID)是子进程环境的元素,

任何进程都可以创建子进程,每个进程都是第一个系统进程的后代
  • centos5,6的PID为1的进程是init
  • centos7的PID为1的进程为systemd

僵尸进程

比较容易理解的是:
    父进程退出了,子进程没有退出. 这些子进程没有父进程来管理,就变成了僵尸进程
  • 启动进程的用户ID(UID)和所属的组(GID)
  • 进程状态:运行R, 休眠S, 僵尸Z

PS查看进程工具

常用的参数

a: 显示跟当前终端关联的所有进程
u: 基于用户的格式显示
x: 显示所有进程,不以终端机来区分

user:启动这些进程的用户
pid:进程的id
%cpu:进程占用cpu百分比
%men:进程占用内存的百分比
vsz:进程占用的虚拟内存大小(单位kb)
rss进程占用的物理内存大小(kb)stat:该进程目前的状态  R:该程序目前正在运行,或者可被运行  S:该程序目前正在睡眠  T:该程序目前正在侦测或者停止了,  Z:该程序应该已经终止,但是其父进程无法正常的终止他,造成zombie僵尸程序的状态  D:不可中断状态五个基本状态后面还可以加一些字母  <:表示进程运行在高优先级上  N:表示进程运行在低优先级上  L:表示进程有页面锁定在内存中  s:表示进程是控制进程  l:表示进程是多线程的  +:表示当前进程运行在前台
start:被触发启动的时间time:实际使用cpu运作的时间,有显示0:00的,耗费cpu资源不到1秒command:改程序的实际指令

还可以通过ps -ef来查看进程

-e: 显示所有进程
-f: 显示完整格式输出

UID:启动这些进程的用户
PID:进程的ID
PPID:父进程的ID号
C:进程生命周期的利用率
Stime:启动启动时的系统时间
tty:进程在哪个终端上运行
  ?:表示与终端没有关系,大部分是内核的  tty1-tty6是本机上面的登入者程序,若为pts/0等等的,则表示由网络连接进主机的程序(是虚拟的)
time:运行进程累计需要的cpu时间
cmd:启动的程序名称

uptime 查看系统负载

20:25:36 :当前时间
up 4 days: 系统运行时间,说明这台服务器已经开机4天了
3 user: 当前登录的用户数
load average: 0.00, 0.01, 0.05:  cpu系统负载,即cpu任务队列的平均长度,三个数值分别是1分钟,5分钟,15分钟的平均值

互动

互动:
找出当前系统中,cpu负载过高的服务器
服务器:load average 0.15, 0.08, 0.01         1核
服务器:load average 4.15, 6.08, 6.01        1核
服务器:load average 10.15, 10.08, 10.01    4核

答案:4核
经验:单核心,1分钟的系统平均负载不差过3,就可以,这是个经验值

top命令

第一行,系统负载
第二行,进程信息
    tesks(当前任务数)
    running 运行
    sleeping 睡眠
    stopped 终止
    zombie 僵尸进程

第三行cpu信息
    us:用户占用cpu的时间
    sy:内核占用cpu
    ni:用户进程空间内改变过优先级占用的cpu
    id:空闲cpu的百分比
    wa:当对磁盘进行大量写时,发现IO等待会占用很多cpu,如果正常使用占用比较多cpu,磁盘性能有问题
    hi:硬件中断占用的cpu,硬件驱动通常是内核中的一个子进程,而不是一个独立的进程
    si:软中断,占用的cpu百分比,往磁盘写入数据有个队列,所占用的时间
    st:虚拟机占用物理机cpu时间

第四行内存信息
  单位kb
  total 总内存
  free 空闲
  used 占用
  buff/cache 这里的缓存是可以释放的

第五行 swap
  total 交换区总量
  free 空闲的交换区总量
  used 使用的交换区总量
  avail Mem 总共的可利用内存是多少
  注意:如果swap分区,被使用,那么你的内存不够用了
快捷键
默认 3s 刷新一次,按s修改刷新时间
按空格立即刷新

按大写的 C 按照cpu占用排序
按大写的 M 安装内存占用排序

按数字键1,显示每个内核的cpu使用频率
按u: 显示指定的用户
h:帮助
top -p 1  通过进程ID查看单个进程

找出系统中占用系统进程最多的进程

top 后按大写的P

在linux系统中最多可以使用100%CPU吗

理论上:如果你是4核心的cpu,你可以运行400%

lsof命令

-p 进程号,列出指定进程号打开的文件
-i  条件:列出符合条件的进程

查看某个进程读了那些文件,调用了那些东西呢,一般用于木马进程

lsof -p 进程ID

查看端口,或者看黑客开启的后门端口是哪个进程在使用

lsof -i:22

pstree工具

  • 以树形图显示进程,只显示进程的名字,且相同进程合并显示
  • pstree -p显示进程ID

前台进程:
是在终端中运行的命令,那么终端就是进程的控制终端
一旦这个终端关闭,这个进程也随之消失

后台进程,
也叫守护进程,是运行在后台的一种特殊进程,不受终端控制,不需要终端的交互,
linux的大多数的服务器就是用守护进程来实现的, 比如web服务器httpd等

前台后台进程切换

&用在一个命令的最后,可以把这个命令放到后台执行

ctrl + z可以将一个正在前台执行的程序放到后台

jobs查看当前有多少在后台运行的进程,这是一个作业控制命令

fg命令将后台中的命令调到前台继续运行,

如果后台中有多个命令可以用 fg %jobnumber将选中的命令调出,

%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid) 

bg命令将一个在后台中暂停的进程,变成继续执行,

用法同上

关闭进程

kill [信号] [进程ID]
kill -l        -->列出指定的信号

常用的信号

信号编号  信号名                      解释
1        SIGHUP        重新加载配置
2        SIGINT         键盘中断ctrl+c
3        SIGQUIT        退出
9        SIGKILL        强制退出
15        SIGTERM        终止(正常结束),缺省信号
18        SIGCONT        继续
19        SIGSTOP        停止
20        SIGTSTP        暂停 ctrl+z

killall 和 pkill 命令通过指定名字来杀死进程

killall sshd
pkill sshd

进程优先级管理

优先级的取值范围(-20,19),越小优先级越高,默认优先级是0nice -n
nice -n 5 vim a.txt
ctrl+z挂起进程

查看进程的PID
查看PID:ps -axu | grep vim

根据PID查看进程的信息

可以发现NI优先值是5

实战:使用screen后台实行执行命令备份命令
场景:公司晚上需要备份1t数据,我再xshell上直接执行备份脚本back.sh可以吗?
或直接运行back.sh&放到后台运行可以吗?
当关了xshell,back.sh&还在后台执行吗?

xshell长时间连接,如果本地网络偶尔断开或者xshell不小心关闭,都会让后台运行的备份命令停止运行的
正确做法使用:screen
安装yum install screen

 用法:

执行screen,将打开一个全新的会话运行你的备份任务,或者vim a.txt命令这时可以键入快捷键ctrl+a+d  就已经分离出一个单独的会话

screen -ls 查看已经建立的会话idscreen -r 25448 通过PID 重新连接会话screen -S text  指定会话名称当不想使用screen会话了,exit退出

原文地址:https://www.cnblogs.com/sunlizhao/p/9574303.html

时间: 2024-08-09 14:20:09

linux 系统进程的相关文章

第一次作业:深入分析Linux系统进程

前言:在现在的操作系统中有很多种,我主要是讲讲Linux操作系统的,首先我们了解一下Linux系统,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.它主要用于基于Intel x86系列CPU的计算机上.这都是参看百度网页上的解释. 1.Linux系统

linux系统进程优先级

linux系统进程优先级 一.什么是进程优先级? ? ? ? ?每个进程都会有相应的优先级,优先级决定程序何时运行.优先级值越低,优先级就越高,就越快被调度程序选中. ? ? ? ?另外,优先级还影响分配给进程的时间片长短.重要的进程,应该分配多一些cpu时间片,好让其尽快完成任务.所有的进程都会有机会运行,但高优先级重要的进程会获取更多的cpu执行时间. 二.优先级取值范围 ? ? ? ?在linux系统中,进程优先级的取值范围是0-139,而这个值又是由另外两个值组成的,一个是代表实时进程(

Linux系统进程查看及管理工具

Linux系统进程查看及管理工具 ps命令ps:report a snapshot of the current processes.ps [options]:选项有三种风格:1 UNIX options, which may be grouped and must be preceded by a dash.2 BSD options, which may be grouped and must not be used with a dash.3 GNU long options, which

[转帖]Linux系统进程的知识总结,进程与线程之间的纠葛...

Linux系统进程的知识总结,进程与线程之间的纠葛... https://cloud.tencent.com/developer/article/1500509 当一个程序开始执行后,在开始执行到执行完毕退出这段时间内,它在内存中的部分就叫称作一个进程. Linux 是一个多任务的操作系统,也就是说,在同一时间内,可以有多个进程同时执行.我们大家常用的单CPU计算机实际上在一个时间片段内只能执行一条指令.那么Linux是如何实现多进程的同时执行的呢?原来Linux使用了一种称为” 进程调度 “的

linux系统进程管理

一.进程的概述 1.进程的概述 (1)进程:运行中的程序的一个副本,是被载入内存的一个指令集合:通常通过进程ID(Process ID,PID)号来标记各个进程 (2)特点:通常从执行进程的用户来继承.进程存在生命周期 (3)task struct:Linux内核存储进程信息的数据结构格式 (4)task list:多个任务的的task struct组成的链表 (5)进程的创建: 1)第一个进程,centos6上为init,centos7上为systemd 2)进程的创建:都有其父进程创建 (6

Linux系统进程管理工具

对于Linxu系统运维工程师来说好的系统进程管理工具,就像一把利器,无坚不摧,可以使用这些工具发现造成性能问题可能原因,提升团队的工作效率,本篇知识提及一些简单常用系统管理工具包括了pstree.ps.pgrep.top.htop.pidof.vmstat.glances.dstat的简单实用例子及常用选项,希望能帮助一些热爱Linux的朋友们. pstree:用来显示进程数的 pstree命令的用法格式 [[email protected] ~]# pstree init─┬─NetworkM

linux系统进程管理之htop工具的使用

在linux上关于系统进程管理方面的程序有很多例如:ps.pstree.pidof.pgrep等众多工具,但是他们都只是捕获当前管理员输入命令并敲回车的前一秒的进程状态信息并且还不会高亮显示,就这样htop出现了. htop为top的增强版,增加了高亮显示进程信息.虽然top可以动态获取并将进程信息返回给终端但是由于所有进程状态的颜色都是一模一样的不便观察,推荐使用htop.glances.dstat等管理工具,如果自己可以写一个专用的那就另当别论. 接下来介绍一下htop工具的使用(glanc

Linux 系统进程相关命令

1.pstree  :可以使用pstree命令来查看系统中进程的分布结构. 2.ps: 常用于查看系统进程的命令是ps(process status)命令,可通过它来查看系统进程的最基本信息. ●-A:显示所有的进程,与选项-e 的显示结果一样. ●-f:全格式输出. ●-h:以不显示标题的形式输出. ●-l:以长格式的形式输出. ●-r:只显示正在运行的进程. ●-T:只显示当前终端中运行的进程. ●-x:显示无控制终端的进程. 3.top:提供一种监控进程和Linux整体性能的能力,使用to

linux 系统进程理解

1.为了对进程从产生到消亡的整个过程进行跟踪和描述,就需要定义各种进程的各种状态并制定相应的状态转换策略,以此来控制进程的运行.      不同的操作系统对进程的状态解释不同,但是最基本的状态都是一样的.包括以下三种:       运行态:进程占用CPU,并在CPU上运行:       就绪态:进程已经具备运行条件,但是CPU还没有分配过来:       阻塞态:进程因等待某件事发生而暂时不能运行:     进程在一生中,都处于上述3中状态之一.       下面是3种状态转换图