0
点赞
收藏
分享

微信扫一扫

Linux之进程

未定义变量 2023-06-26 阅读 87

目录

Linux之进程

进程简介

定义

组成部分

程序与进程的区别

进程与线程的区别

父子进程

前台进程和后台进程 

进程分类

进程的状态

查看进程

查看当前系统信息 --- ww

查看个别用户信息 --- w [用户名]

静态查看进程 --- ps

        参数及作用

        查看隶属自己的进程

        信息含义解析

        案例

        常用操作

        自定义查看显示字段

查看进程树

查看指定进程的PID

查看服务进程号

动态查看进程 --- top

        第一部分解析

        第二部分详解

        命令及作用

nohup命令

        语法格式

信号控制将进程

列出所有支持的信号

进程相关命令及其功能

作业控制

定义

命令及作用

作业标识符及作用

案例

        示例1 --- 运行程序(时),让其在后台

        示例2 --- 查看后台挂起

        示例3 --- 查看后台作业

        示例4 --- 将作业1调回到前台

        示例5 --- 终止PID为1的进程


Linux之进程

进程简介

定义

        进程是程序的一次执行。进程是可以并行执行的计算。进程是一个程序与其使用的数据在处理机上顺序执行时发生的活动。进程是程序在一个数据集合上的运行过程。它是系统进行资源分配调度的一个独立单位

组成部分

  1. 已分配内存的地址空间
  2. 安全属性,包含所有全凭根和特权
  3. 程序代码的一个或多个执行线程
  4. 进程状态

程序与进程的区别

程序 --- 二进制文件 ,静态 /bin/date, /usr/sbin/httpd /usr/sbin/sshd, /usr/local/nginx/sbin/ngi

进程 --- 是程序运行的过程,动态,有生命周期及运行状态

  1. 程序静态的,它只是一组指令集合,不具有任何的运行意义,而进程程序运行动态过程
  2. 进程程序不是一一对应的关系,相同程序运行在不同的数据集上就是不同的进程
  3. 进程还具有并发性交往性,而程序却是封闭

进程与线程的区别

线程 --- 进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行

  1.  一个进程可以拥有多个线程,而一个线程只能被一个进程所拥有
  2. 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及序列出口,它必须组成进程才能被执行

父子进程

        子进程 --- 由一个进程所产生的进程,产生这个子进程的进程称为父进程

在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据堆栈段以及父进程的进程环境

        父进程终止子进程自然终止

前台进程和后台进程 

        前台进程 --- 在 shell 提示处理打入命令后,创建一个子进程,运行命令, Shell 等待命令退出,然后返回对用户给出提示符。这条命令与 Shell 异步运行,即在前台运行,用户在它完成之前不能执行别一个命令

        后台进程 --- 在 Shell 提示处理打入命令,若后随一个 & Shell 创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与 Shell 同步运行,即在后台运行。后台进程必须是非交互式

进程分类

进程的状态

        在 多任务 处理操作系统中,每个CPU (或核心)在 一个时间点 只能处理一个进程 。在进程运行时,它对 CPU时间 资源分配 的要求会 不断变化 ,从而 为进程分配一个状态 ,它 随着环境要求而改变

查看进程

查看当前系统信息 --- ww

[root@joker ~]# w

查看个别用户信息 --- w [用户名]

[root@joker ~]# w root 

静态查看进程 --- ps

参数及作用

参数作用
-a显示所有用户的进程
-u显示用户名启动时间
-x显示没用控制终端的进程
-e显示所有进程,包括没有控制终端的进程
-l长格式显示
-w宽行显示,可以使用多个w进行加宽显示

查看隶属自己的进程

  1. ps -u or-l 查看隶属于自己进程的详细信息
  2. ps -le or-aux 查看所有用户执行的进程的详细信息
  3. ps -aux -sort pid 可按进程执行的时间PIDUID等对进程进行排序

信息含义解析

案例

通过内存升序排序,并分页查看

[root@joker ~]# ps aux --sort rss |less

通过内存降序排序,并分页查看

[root@joker ~]# ps aux --sort -rss |less

通过CPU升序排序,并分页查看

[root@joker ~]# ps aux --sort %cpu |less

通过CPU降序排序,并分页查看

[root@joker ~]# ps aux --sort -%cpu |less

常用操作

自定义查看显示字段

[root@joker ~]# ps axo user,pid,ppid,%mem,command |less

查看进程树

[root@joker ~]# pstree

查看指定进程的PID

[root@joker ~]# cat /run/sshd.pid 

查看服务进程号

        pgrep [ 服务名称 ]

[root@joker ~]# pgrep -l sshd 
[root@joker ~]# pgrep sshd 

        pidof [ 服务名称 ]

[root@joker ~]# pidof sshd 

动态查看进程 --- top

[root@joker ~]# top 

 第一部分解析

         主要是系统整体信息统计

第二部分详解

命令及作用

命令作用

h|?

帮助

M

内存的使用 排序

P

CPU使用 排序

N

PID的大小排序

R

对排序进行反转

f

自定义显示字段

1

显示所有CPU的负载

<

向前

向后

z

色彩

W

保存top环境设置

nohup命令

        可以在用户退出继续执行某一进程

         一般的命令 用户退登录 后就 停止执行 了, nohup 命令可以 使进程 用户退出登录 仍旧继续执行 ,nohup 命令将执行后的数据信息和错误信息默认 存储到文件 nohup.out 中

语法格式

        nohup program &

信号控制将进程

列出所有支持的信号

[root@joker ~]# kill -l

进程相关命令及其功能

作业控制

定义

        作业控制 --- 一个命令行功能,允许一个shell 实例来 运行 管理 多个命令,Shell的一个特性,使用户能在多个独立进程间进行切换

命令及作用

命令作用
cmd&该命令在后台运行
Ctrl+d终止一个正在前台运行的进程(含有正常含义)
Ctrl+c终止一个正在前台运行的进程(含有强行含义)
Ctrl+z挂起一个正在前台运行的进程
jobs 显示后台作业被挂起的进程
bg重新启动一个挂起的作业,并在后台运行
fg把一个在后台运行的作业放到前台运行

作业标识符及作用

标识符作用
%N第N号作业
%S字符串S开头的被命令行调用的作业
%?S包含字符串S的被命令行调用的作业
%+默认作业(前台最后结束的作业,或后台最后启动的作业,等同于%%)
%-第二默认作业

案例

        示例1 --- 运行程序(时),让其在后台

[root@joker ~]# sleep 3000 &

        示例2 --- 查看后台挂起

[root@joker ~]# ps aux |grep sleep

        示例3 --- 查看后台作业

[root@joker ~]# jobs

        示例4 --- 将作业1调回到前台

[root@joker ~]# fg %1

        示例5 --- 终止PID为1的进程

[root@joker ~]# kill %1
举报

相关推荐

0 条评论