当前位置: 首页 > news >正文

程序与进程 linux系统

程序与进程

程序 ( program ):
    通常为 binary program ,放置在储存媒体中(如硬盘、光盘、软盘、磁带等),
    为实体文件的型态存在;二进制文件,比如静态 /bin/date, /usr/sbin/httpd,
    /usr/sbin/sshd,/usr/local/nginx/sbin/nginx;
    
进程 ( process ):
    程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,
    操作系统并给予这个内存内的单元一个识别码 ( PID ),可以说,进程就是一个正
    在运行中的程序。是程序运行的过程,动态,有生命周期及运行状态。
    1
进程调用:
    一个进程通过fork()函数,创建一个和自己一样的进程。被创建出来的进程是子进程,
    而创建子进程的进程就是父进程子进程是父进程的一个副本,是它的复制,两者不共享
    地址空间(内存)。
    
程序调用的流程 fork and exec :    
    其实子程序与父程序之间的关系还挺复杂的,最大的复杂点在于程序互相之间的调用。
    在 Linux 的程序调用通常称为 fork-and-exec 的流程程序都会借由父程序以复制 ( fork )
    的方式产生一个一模一样的子程序, 然后被复制出来的子程序再以 exec的方式来执行
    实际要进行的程序,最终就成为一个子程序的存在。
    
    echo $$        查看当前进程ID
    echo $PPID    查看父进程ID
    
僵尸进程:
    一个进程使用fork创建子进程,如果父进程退出,子进程没有退出,没有父进程统一管理和
    结束,所占资源无法释放。
    
进程的属性:
    进程ID:PID 唯一的值,用来区分进程
    父进程的ID: PPID
    启动进程的用户ID(UID)和所属组(GID)
    进程状态:运行R  休眠S 僵尸Z
    进程执行的优先级
    进程所连接的终端名
    进程资源占用:内存、cpu占用量
    
1.进程静态查看工具 ps
    用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序

选项:
    a: 显示当前终端关联的所有进程
    u:基于用户的格式显示
    x: 显示所有进程,不以终端来区分,通常与a这个参数一起使用。
    -e:显示所有程序,与-A具有同样的效果
    -l或l(小写L):采用详细的格式来显示程序状况。
    -f:显示UID,PPIP,C与STIME栏位。    
    -j或j:采用工作控制的格式显示程序状况。(jobs format)
    

常用方法    
ps aux    观察系统所有程序数据

USER   PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root    1  0.1  0.2 125712  4232 ?        Ss   08:44   0:02 /usr/lib/systemd/systemd

USER :该 process 属于那个使用者帐号的?
PID :该 process 的程序识别码。
%CPU :该 process 使用掉的 CPU 资源百分比;
%MEM :该 process 所占用的实体内存百分比;
VSZ :该 process 使用掉的虚拟内存量 ( KBytes )
RSS :该 process 占用的固定的内存量 ( KBytes )
TTY :该 process 是在那个终端机上面运行,若与终端机无关则显示 ?,另外,
    tty1-tty6 是本机上面的登陆者程序,若为pts/0 等等的,则表示为由网络连接进主机的程序。
STAT :该程序目前的状态,状态显示与 ps -l 的 S 旗标相同 ( R/S/T/Z)
    R:runing 运行态
    S:可中断睡眠态
    D:不可中断睡眠态
    T:停止态
    Z:僵尸态
    s:表示这个进程是个领导者进程
    +:该进程为前台进程
    l:该进程是多线程进程
    N:低优先级进程
    <: 高优先级进程
    []: 表示这个一个内核线程
START :该 process 被触发启动的时间;
TIME :该 process 实际使用 CPU 运行的时间。
COMMAND :该程序的实际指令为何?
注:最后一列用[]括起来的进程是内核态进程,无[]的是用户态进程


ps -l     仅观察和登录者相关的程序

F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root       3066   3064  0  80   0 - 29082 do_wai 09:05 pts/1    00:00:00 -bash

F :代表这个程序旗标 ( process flags ),说明这个程序的总结权限,常见号码:
    若为 4 表示此程序的权限为 root ;
    若为 1 则表示此子程序仅进行复制( fork )而没有实际执行(exec )。
S :代表这个程序的状态 ( STAT )
UID/PID/PPID:代表 此程序被该 UID 所拥有 / 程序的 PID 号码 / 此程序的父程序 PID 号码
C:代表CPU 使用率,单位为百分比;
PRI/NI:Priority/Nice 的缩写,代表此程序被 CPU 所执行的优先顺序,数值越小代表该程序越
    快被 CPU 执行。
ADDR/SZ/WCHAN :都与内存有关, ADDR 是 kernel function ,指出该程序在内存的哪个部分,
    如果是个 running 的程序,一般就会显示 “ - ” / SZ 代表此程序用掉多少内存 / WCHAN
    表示目前程序是否运行中,同样的, 若为 - 表示正在运行中。
TTY:登陆者的终端机位置,若为远端登陆则使用动态终端接口(pts/n )
TIME:使用掉的 CPU 时间,注意,是此程序实际花费 CPU 运行的时间,而不是系统时间;
CMD:就是 command 的缩写,造成此程序的触发程序之指令为何。


pstree  -p      显示进程树形结构
pgrep  -l  -u lisi   通过条件查找进程(查lisi所有进程)


2. 进程动态查看工具 top
    可以持续的监测整个系统的程序工作状态。每次更新程序资源的时间为5秒,可以使用 -d 来
    进行修改。
    
    top -d 2      每隔2秒刷新一次
    
    M    按内存排比
    P   按cpu排比
    T   按时间排比
    
    us — 用户空间占用CPU的百分比。
    sy — 内核空间占用CPU的百分比。
    ni — 改变过优先级的进程占用CPU的百分比
    id — 空闲CPU百分比
    wa — IO等待占用CPU的百分比
    hi — 硬中断(Hardware IRQ)占用CPU的百分比
    si — 软中断(Software Interrupts)占用CPU的百分比
    st ---虚拟cpu等待实际cpu的时间百分比
    
    top 默认使用 CPU 使用率( %CPU ) 作为排序的重点,如果你想要使用内
    存使用率排序,则可以按 “M”, 若要恢复则按 “P” 即可。如果想要离开
    top 则按 “ q ” 。

    若将 top 的信息进行2次,然后输出到/top/top.txt
    top -b -n 2 > /tmp/top.txt


3. 进程的前后台调动

    前台:你可以控制与下达指令的这个环境称为前景的工作 (foreground )
    后台:可以自行运行的工作,无法使用 ctrl+c 终止他,可使用 bg/fg 调用该工作

    ctrl + z      把前台进程调到后台停止执行
    
    &              把前台进程调到后台继续执行
    例: cp /dev/cdrom  /root/centos7.iso &
    
    jobs           查看后台工作状态
        -l:显示进程号;
        -p:仅任务对应的显示进程号;
        -n:显示任务状态的变化;
        -r:仅输出运行状态(running)的任务;
        -s:仅输出停止状态(stoped)的任务。
        
    fg            将后台任务拿到前台处理    
    bg            将后台暂停任务继续执行
    
    安装nginx 测试进程管理
    yum install nginx -y
    systemctl start nginx
    ps aux |grep nginx |grep -v grep
    ps -elf |grep nginx |grep -v grep
    netstat -anptl |grep nginx    #查看端口
    
    
    kill       进程号        仅杀死某个进程号的进程
    killall  进程名        杀死进程名开启的所有进程和子进程
    pkill -u lisi        杀死满足条件的进程
        -9        强制
        -15        正常结束,默认
        
        -l        列出所有信号
            0    status  状态
            1    SIGHUP    重载
            2   SIGINT    终止,Ctrl+c
            3    SIGQUIT    退出
            9    SIGKILL 强制终止
            15  SIGTERM 正常结束,默认
            18  SIGCONT 继续
            19  SIGSTOP 停止
            20  SIGTSTP 暂停,ctrl+z
            
4. 改变进程优先级

PRI :进程优先权,代表这个进程可被执行的优先级,其值越小,优先级就越高,越早被执行
NI :进程Nice值,代表这个进程的优先值,-20到19,PRI(new)=PRI(old)+nice
%nice :改变过优先级的进程的占用CPU的百分比

命令:
nice -n -5 vim &    指定执行命令的nice值
renice -5 进程号    修改已运行进程的nice值
    
5. screen 虚拟窗口管理器,建立稳定的远程管理会话
    远程执行长时间操作,比如:数据库的备份,数据量较大,ssh远程连接中断,备份也会中止
    
    yum -y install screen
    
(1)要进行某项操作时,先使用命令创建一个Screen:
    screen -S test1
    
(2)接着就可以在里面进行操作了,如果你的任务还没完成就要走开的话,使用命令保留Screen:
    Ctrl+a+d                    #按Ctrl+a,然后再按d即可保留Screen
    [detached]                  #这时会显示出这个提示,说明已经保留好Screen了

   如果你工作完成的话,就直接输入:
    exit                        #这样就表示成功退出了
    [screen is terminating]
    
(3)如果你上一次保留了Screen,可以使用命令查看:
    screen -ls

(4)恢复Screen,使用命令:
    screen -r test1
    
Screen命令中用到的快捷键
Ctrl+a c :创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换
Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
exit :关闭当前窗口,并且切换到下一个窗口(当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)
Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态


工作经验:恢复误删除文件(仅限于centos6)

ext3: 恢复命令 ext3grep
ext4: 恢复命令 extundelete

windows: final data、easyrecovery

工作经验:服务器基础知识

服务器高度单位:U     1U=4.445厘米

常见品牌:2U
    Dell R730 R740 R750
    惠普(HP)DL388Gen10/DL380G10
    浪潮(INSPUR) NF5280 M5
    华为(HUAWEI)    2288HV5

相关文章:

程序与进程 linux系统

程序与进程 程序 &#xff08; program &#xff09;&#xff1a; 通常为 binary program &#xff0c;放置在储存媒体中&#xff08;如硬盘、光盘、软盘、磁带等&#xff09;&#xff0c; 为实体文件的型态存在&#xff1b;二进制文件&#xff0c;比如静态 /bin/date…...

使用MongoDB构建AI:Story Tools Studio将生成式AI引入Myth Maker AI游戏

Story Tools Studio利用先进的生成式AI技术&#xff0c;打造沉浸式、个性化、无穷尽的情景体验。 Story Tools Studio创始人兼首席执行官Roy Altman表示&#xff1a;“我们的旗舰游戏Myth Maker AI采用的是我们自主研发的、以AI为驱动的专家指导型故事生成器MUSE&#xff0c;它…...

鸿蒙UIAbility组件概述(二)

鸿蒙UIAbility组件概述 UIAbility组件基本用法指定UIAbility的启动页面获取UIAbility的上下文信息 UIAbility组件与UI的数据同步使用EventHub进行数据通信使用AppStorage/LocalStorage进行数据同步 UIAbility组件间交互&#xff08;设备内&#xff09;启动应用内的UIAbility启动…...

Oracle(70)如何优化SQL查询?

优化SQL查询是数据库管理的重要部分&#xff0c;旨在提高查询性能&#xff0c;减少响应时间和资源消耗。以下是一些常见的SQL查询优化技术&#xff0c;结合代码示例详细说明。 1. 使用索引 索引是优化查询性能的最常见方法之一。索引可以显著减少数据检索的时间。 示例 假设…...

深度剖析:Jenkins构建任务无法中断的原因及解决方案

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…...

【YOLO】常用脚本

目录 VOC转YOLO划分训练集、测试集与验证集 VOC转YOLO import os import xml.etree.ElementTree as ETdef convert(size, box):dw 1. / size[0]dh 1. / size[1]x (box[0] box[1]) / 2.0y (box[2] box[3]) / 2.0w box[1] - box[0]h box[3] - box[2]x x * dww w * dwy…...

Springboot IOC DI理解及实现+JUnit的引入+参数配置

一、JavaConfig 我们通常使用 Spring 都会使用 XML 配置&#xff0c;随着功能以及业务逻辑的日益复杂&#xff0c;应用伴随着大量的 XML 配置文件以及复杂的 bean 依赖关系&#xff0c;使用起来很不方便。 在 Spring 3.0 开始&#xff0c;Spring 官方就已经开始推荐使用 Java…...

CeresPCL 最小二乘插值(曲线拟合)

一、简介 在多项式插值时,当数据点个数较多时,插值会导致多项式曲线阶数过高,带来不稳定因素。因此我们可以通过固定幂基函数的最高次数 m(m < n),来对我们要拟合的曲线进行降阶。之前的函数形式就可以变为: 既然是最小二乘问题,那么就仍然可以使用Ceres来进行求解。 …...

【TCP/IP】自定义应用层协议,常见端口号

互联网中&#xff0c;主流的是 TCP/IP 五层协议 5G/4G 上网&#xff0c;是有自己的协议栈&#xff0c;要比 TCP/IP 更复杂&#xff08;能够把 TCP/IP 的一部分内容给包含进去了&#xff09; 应用层 可以代表我们所编写的应用程序&#xff0c;只要应用程序里面用到了网络通信…...

Frida 的下载和安装

首先要安装好 python 环境 安装 frida 和 工具包 pip install frida frida-tools 查看版本&#xff1a; frida --version 16.4.8 然后到 github 上下载对应 server &#xff08; 和frida 的版本一致 16.4.8&#xff09; Releases frida/frida (github.com) 查看手机或…...

后端开发刷题 | 链表内指定区间反转【链表篇】

描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转&#xff0c;要求时间复杂度 O(n)O(n)&#xff0c;空间复杂度 O(1)O(1)。 例如&#xff1a; 给出的链表为 1→2→3→4→5→NULL1→2→3→4→5→NULL, m2,n4 返回 1→4→3→2→5→NULL 数据范围&#xff1a; 链表…...

【NVMe系列-提问页与文章总结页面】

NVMe系列-提问页与文章总结页面 问题汇总NVMe协议是什么&#xff1f;PRP 与 PRP List是做什么的&#xff1f; 已写文章汇总 问题汇总 NVMe协议是什么&#xff1f; PRP 与 PRP List是做什么的&#xff1f; 已写文章汇总...

用生成器函数生成表单各字段

生成器函数生成表单字段是非常合适的用法,避免你要用纯javascript做后台时频繁的制作表单&#xff0c;而不能重复利用 //这里是javascript部分&#xff0c;formfiled.js //生成器函数对字段的处理&#xff0c;让各字段name\className\label\value\placeholder赋值到input的属性…...

【xilinx】O-RAN 无线电接口 - Vivado 2020.1 及更新工具版本的发行说明

描述 记录包含 O-RAN 无线电接口 LogiCORE IP 的发行说明和已知问题&#xff0c;包括以下内容&#xff1a; 一般信息已知和已解决的问题 解决方案 一般信息 可以在以下三个位置找到支持的设备&#xff1a; O-RAN 无线电接口 IP 产品指南&#xff08;需要访问O-RAN 安全站点&…...

结营考试- 算法进阶营地 - DAY11

结营考试 - 算法进阶营地 - DAY11 测评链接&#xff1b; A - 打卡题 考点&#xff1a;枚举&#xff1b; 分析 枚举 a _①_ b _②_ c d&#xff0c;中两个运算符的 3 3 3 种可能性&#xff0c;尝试寻找一种符合要求的答案。 参考代码 #include <bits/stdc.h> usi…...

设计模式: 访问者模式

文章目录 一、介绍二、模式结构三、优缺点1、优点2、缺点 四、应用场景 一、介绍 Visitor 模式&#xff08;访问者模式&#xff09;是一种行为设计模式&#xff0c;它允许在不修改对象结构的前提下&#xff0c;增加作用于一组对象上新的操作。就增加新的操作而言&#xff0c;V…...

selenium底层原理详解

目录 1、selenium版本的演变 1.1、Selenium 1.x&#xff08;Selenium RC时代&#xff09; 1.2、Selenium 2.x&#xff08;WebDriver整合时代&#xff09; 1.3、Selenium 3.x 2、selenium原理说明 3、源码说明 3.1、启动webdriver服务建立连接 3.2、发送操作 1、seleni…...

【Solidity】继承

继承 Solidity 中使用 is 关键字实现继承&#xff1a; contract Father {function getNumber() public pure returns (uint) {return 10;}function getNumber2() public pure virtual returns (uint) {return 20;} }contract Son is Father {}现在 Son 就可以调用 Father 的 …...

docker 安装mino服务,启动报错: Fatal glibc error: CPU does not support x86-64-v2

背景 docker 安装mino服务&#xff0c;启动报错&#xff1a; Fatal glibc error: CPU does not support x86-64-v2 原因 Docker 镜像中的 glibc 版本要求 CPU 支持 x86-64-v2 指令集&#xff0c;而你的硬件不支持。 解决办法 降低minio对应的镜像版本 经过验证&#xff1a;qu…...

地图相册系统的设计与实现

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...