Linux进程详解

2023-05-16

一.概述

进程就是系统运行中的程序(process)

是正在执行的一个程序或者命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源

例如windows安装程序,先下载程序安装包,安装到指定硬盘。

双击运行后系统就会有对应的应用进程显示。

进程会占用四类资源,CPU,memory,disk,network

CPU (Central Processing Unit 中央处理单元 )lscpu命令可以看到CPU的详细信息

Memory(内存)free -h命令可以查看系统内存大小

Disk(磁盘)

Network(网络)

二.进程管理

1.进程管理的作用:(1)判断系统的健康状态(2)查看系统的所有进程(3)结束相应进程

查看系统当前进程

ps aux(查看当前时间节点进程信息)

ps aux | grep zx ( 表示查找zx用户使用的进程,)

ps le \ps ef(l表示显示详细信息,e表示显示所有进程)

USER:该进程是由那个用户产生的

PID:进程的ID编号

%CPU:该进程的CPU资源占用百分比

%MEM:该进程的内存资源占用百分比

VSZ:该进程的虚拟内存的大小,单位KB(将磁盘的一部分空间转为虚拟内存使用,在物理内存使用占满后才会用到)

RSS:该进程占用实际物理内存的大小,单位KB

TTY:该进程是在哪个终端上运行的(TTY1~TTY6代表本地控制台终端。TTY1是图形终端,TTY2~6是本地的字符界面终端。PTS/0-255代表虚拟终端。)

STAT:进程状态。R:运行、S:睡眠、T:停止、s:包含子进程、+:位于后台

START:该进程启动时间

TIME:该进程占用系统得到运算时间(注意不是系统时间)

COMMAND:产生此进程的命令名

 top (表示进入监听模式,输入h显示帮助,输入P以cpu进行排序,M以内存排序,N以PID排序,输入q可以退出,该命令可以动态显示进程的信息变化)

        第一行是系统信息:    

 16:34:25 是系统时间;Up1day,14:17是系统运行时间;1 user是系统当前登录用户数量;

      load average:0.00,0.00,0.00是系统1分钟5分钟15分钟内的平均负载。大于1表示超负载

        第二行是进程信息:

Tasks:290total表示系统进程总数;running表示正在运行的进行;sleeping表示睡眠的进程

stopped便是已停止的进程;zombie表示僵尸进程(如果不是0,需要手动检查)

        第三行是cpu信息:

us表示用户占用cpu百分比;sy表示系统占用cpu百分比;ni表示改变过优先级的用户占用百分比

id表示空闲cpu占用百分比;wa表示等待输入/输出的进程占用百分比;hi表示硬件中断请求服务占用百分比;si表示软件中断请求服务占用百分比;st表示steal time虚拟时间百分比,就是当有虚拟机时虚拟cpu等待实体cpu的时间百分比

        第四行是物理内存信息:

Mem表示物理内存总量;used表示以使用的物理内存;free表示闲置物理内存;buffers表示缓冲数量

        第五行是交换分区(swap)信息:

swap表示交换分区(虚拟内存)的在大小;used表示已经使用的交互分区的大小;free表示空闲交换分区的大小;cached表示作为缓存的交换分区大小

pstree(查看进程树,可以直观的看出父进程与子进程的关系)

pstree -p(将进程树全部展开,查看到对应的PID)

三.终止进程

1, SIGHUP, 该信号让进程⽴即关闭,然后重新读取配置⽂件之后重启

2 ,SIGINT ,程序终⽌信号,⽤户终⽌前台进程。相当去输出ctrl+c快捷键

9, SIGKILL, ⽤来⽴即结束程序的运⾏,本信号不能被阻塞、忽略。⼀般 ⽤于强制终⽌进程

使用 kill命令终止进程

18, SIGCONT, 信号可以让暂停的进程恢复执⾏,本信号不能被阻断

19, SIGSTOP ,该信号可以暂停前台进程,相当于输⼊crtl+z快捷键。本信号 不能被阻断

kill -1 32411   (重启PID为32411的进程)

kill -9 32425(强制终⽌PID为32425的进程)

kill -15 32452(相当于kill 32452,正常结束PID为32452的进程)


Linux服务管理

服务就是进程,进程不一定是服务。

服务是具备一定功能的进程,但有些进程并不具备服务的特征

linux中的第一个进程,就是整个系统的父进程。负责了后面所有的其他进程的启动。

在RHEL6版本之前采用的第一个进程为init,但通过init进程启动的后续进程都是串行启动的,串行启动就意味着速度慢。每个进程需要排队一个一个启动

在RHEL7版本至今,采用的第一个进程为systemd。该进程相比init来说,采用了并行启动的方式,并行启动就意味着速度更快。

systemd管理的内容不仅仅有service,systemd管理的单位是unit,service只是unit(单位)中的一种。

systemctl list-units (查看systemd管理的信息)systemctl list-unit-files (查看)

        systemd管理服务(service)操作

systemctl status NetworkManager.service(查看NetworkManager服务的信息)

systemctl stop NetworkMannger(停止NetworkMannger服务)

systemctl start NetworkMannger(启动NetworkMannger服务) 

systemctl restart NetworkMannger(重新启动NetworkMannger服务)

        systemd管理target

target是由服务组成的一组启动目标。systemd可以设置启动目标,如果指定了一个target作为启动目标,那么下次系统启动时就会启动target里面的所有服务。

systemctl get-default (该命令表示显示下一次启动哪一个target)

        multi-user.target (包含了字符界面组件的linux系统)

systemctl isolate multi-user.target (该命令表示临时将系统界面切换到字符界面 )

systemctl set-default multi-user.target (表示下一次开机启动将系统界面切换到字符界面 )

        graphical.target (包含了图形界面组件的linux系统)

systemctl isolate graphical.target (该命令表示临时将系统界面切换到图形界面 )

systemctl set-default graphical.target (表示下一次开机启动将系统界面切换到图形界面 )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux进程详解 的相关文章

  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包

随机推荐