首页 > 系统相关 >linux进程管理

linux进程管理

时间:2024-07-09 18:10:17浏览次数:20  
标签:管理 Running sleep linux 进程 bogon root nice

Linux进程管理

  • 什么是程序:应用程序是用户选择安装的程序的总称,通常包括驱动程序的进程,看图软件、解压缩软件等通用软件的进程.也可以顾名思义地说:应用程序就是为使用者提供与电脑沟通所开发出来的程序软件

  • 什么是进程:

    狭义定义:进程就是一段程序的执行过程。
     广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

  • 什么是线程:也叫做轻量级进程,线程是进程中的⼀个执⾏单元,负责当前进程中程序的执⾏,⼀个进程中⾄少有⼀个线程。⼀个进程中是可以有多个线程的,这个应⽤程序也可以称之为多线程程序。

【1】、查看进程树

  • pstree:以树状结构显示进程信息,包括进程之间的关系

  • option

    • -p:显示进程PID

    • -a:显示完整的命令行

    • -u:列出每个进程所属账号名称

      可以查看每一个进程是由哪些账号开启的,进程要一直开启才可以看到,进程有生命周期

    • image-20240408165232506

通过pstree命令可以去进行进程的查询。

可以通过用户查询

pstree -p 用户名

  • ps aux :unix格式静态查看系统进程,查看系统所有进程信息

    • a:显示当前终端所有进程

    • u:以用户格式输出

    • x:当前用户在所有终端下的进程

    • [root@bogon ~]# ps aux
      USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
      root           1  0.1  0.3 241428 14348 ?        Ss   04:21   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
      
    • 各个字段的含义

    • USER:进程属于哪个用户
      PID:进程ID号
      %CPU:该进程占用CPU的百分比
      %MEN:该进程占用物理内存的百分比
      VSZ:进程使用掉的虚拟内存量(单位:kb)
      TTY:表示进程在那个终端运行,如果内核直接调用则显示“?”,tty1-tty6表示本机终端登录的用户进程,pts/0-255则表示远程终端登录用户的进程
      STAT:进程状态,R(running)运行,S(sleep)睡眠,s包含子进程,T(stop)停止,Z(zombie)僵尸进程, +后台进程
      START:进程启动时间
      TIME:占用CPU运算时间
      COMMAND:产生此进程的命令
      
  • ps ef :unix格式静态查看系统进程,查看系统所有进程信息

    • -e:显示当前终端所有进程

    • -f:显示最完整的进程信息

    • -l:以长格式输出

    • 查找僵尸进程

    • [root@bogon ~]# ps -e -o ppid,stat | grep Z
      

【2】、top命令

Tasks: 256 total,   1 running, 255 sleeping,   0 stopped,   0 zombie
		进程总数	正在运行的进程  休眠进程数		停止进程数		僵尸进程数

第一行:

系统本地时间

系统运行时间

用几个用户在登录

负载情况

image-20240408193624199

  • -M:按照内存使用资源排序
  • -P:按照CPU使用资源排序

【3】、进程的前后台调度

  • 前台任务

    会持续占据终端界面,直至任务的结束才会释放终端界面,在前台任务占据终端界面时,我们是不能进行任何操作的

  • 后台任务

    在后台运行的任务不会占据控制界面,我们可以执行其他的命令

  • &:将程序fangruhoutaiyunx

  • jobs -l:查看后台任务列表

  • fg 进程编号:将后台任务恢复到前台执行

  • CTRL+Z:挂起前台任务并且放入后台

  • bg 进程编号:激活后台被挂起的进程

  • [root@bogon ~]# ping baidu.com >> /dev/null &
    [1] 3230
    #将进程放入后台执行
    [root@bogon ~]# jobs -l
    [1]+  3230 Running                 ping baidu.com >> /dev/null &
    #查看后台进程
    [root@bogon ~]# fg 1
    ping baidu.com >> /dev/null
    #将后台进程放入前台执行
    ^Z
    #挂起前台任务,并放入后台
    [1]+  Stopped                 ping baidu.com >> /dev/null
    [root@bogon ~]# bg 1
    #激活
    [1]+ ping baidu.com >> /dev/null &
    [root@bogon ~]# jobs -l
    [1]+  3230 Running                 ping baidu.com >> /dev/null &
    

【4】、杀死进程

  • CTRL+C:结束当前命令程序,只能杀死前台任务,后台任务没法杀

  • kill

    • 按照PID杀死,精确的杀死一个进程

    • -l:列出可选择的信号

    • 常用信号:

      -1:重启

      -9:强制杀死,直接杀死,例如杀死僵尸进程

      -15:正常杀死,默认是-15,杀死进程时先终止,后杀死

    • [root@bogon logs]# jobs -l
      [1]   3628 Running                 sleep 2m &
      [2]-  3629 Running                 sleep 3m &
      [3]+  3630 Running                 sleep 4m &
      [root@bogon logs]# kill 3628
      [root@bogon logs]# jobs -l
      [1]   3628 Terminated              sleep 2m
      [2]-  3629 Running                 sleep 3m &
      [3]+  3630 Running                 sleep 4m &
      [root@bogon logs]# jobs -l
      [2]-  3629 Running                 sleep 3m &
      [3]+  3630 Running                 sleep 4m &
      [root@bogon logs]# jobs -l
      [2]-  3629 Running                 sleep 3m &
      [3]+  3630 Running                 sleep 4m &
      [root@bogon logs]# kill -9 3630
      [root@bogon logs]# jobs -l
      [2]-  3629 Running                 sleep 3m &
      [3]+  3630 Killed                  sleep 4m
      [root@bogon logs]# jobs -l
      [2]+  3629 Running                 sleep 3m &
      
  • killall

    • 依据进程名杀死进程

    • killall 进程名

    • [root@bogon logs]# jobs -l
      [1]   3673 Running                 sleep 5m &
      [2]-  3674 Running                 sleep 6m &
      [3]+  3675 Running                 sleep 7m &
      [root@bogon logs]# killall sleep 
      [1]   Terminated              sleep 5m
      [2]-  Terminated              sleep 6m
      [3]+  Terminated              sleep 7m
      [root@bogon logs]# jobs -l 
      
    • 强制杀死某用户所有的进程

      killall -9 -u 用户名
      
  • pkill

    • 按照终端杀死进程,-t

【5】、nice值

  • 每一个进程都会拥有一个“优先级(priority)”属性
  • 通过改变nice值,修改进程优先级
  • nice值的范围是-20~19,nice值越低优先级越高,nice默认值是0、
  • nice:在创建进程时设置nice值
  • renice:创建好进程后,重新设置nice值
[kiosk@foundation0 ~]$ ps efo  pid,command,nice
    PID COMMAND                      NI
   5890 bash SYSTEMD_EXEC_PID=2335    0
   3058 bash SYSTEMD_EXEC_PID=2335    0
   8949  \_ ps efo pid,command,nice   0
   2245 /usr/libexec/gdm-wayland-se   0
   2254  \_ /usr/libexec/gnome-sess   0

# 普通用户对于nice值只能调高(优先级只能调低),root用户对于nice值既可以调高,也可以调低
[root@servera ~]# nice -n 19 ping 127.0.0.1 > /dev/null &
[root@servera ~]# ps efo pid,command,nice
    PID COMMAND                      NI
   1519 sudo -i SHELL=/bin/bash HIS   0
   1523  \_ -bash HISTSIZE=1000 HOS   0
   1545      \_ ping 127.0.0.1 SHEL  19
   1546      \_ ps efo pid,command,   0
   1078 /sbin/agetty -o -p -- \u --   0
   1065 /sbin/agetty -o -p -- \u --   0
[root@servera ~]# renice -n 10 1545
1545 (process ID) old priority 19, new priority 10
[root@servera ~]# ps efo pid,command,nice
    PID COMMAND                      NI
   1519 sudo -i SHELL=/bin/bash HIS   0
   1523  \_ -bash HISTSIZE=1000 HOS   0
   1545      \_ ping 127.0.0.1 SHEL  10
   1548      \_ ps efo pid,command,   0
   1078 /sbin/agetty -o -p -- \u --   0
   1065 /sbin/agetty -o -p -- \u --   0
   
# 普通用户不允许调低nice值,也就是不允许将进程的优先级调高
[student@servera ~]$ ping 127.0.0.1 > /dev/null &
[1] 1577
[student@servera ~]$ 
[student@servera ~]$ 
[student@servera ~]$ ps efo pid,command,nice
    PID COMMAND                      NI
   1501 -bash USER=student LOGNAME=   0
   1577  \_ ping 127.0.0.1 SHELL=/b   0
   1578  \_ ps efo pid,command,nice   0
[student@servera ~]$ renice -n 14 1577
1577 (process ID) old priority 0, new priority 14
[student@servera ~]$ ps efo pid,command,nice
    PID COMMAND                      NI
   1501 -bash USER=student LOGNAME=   0
   1577  \_ ping 127.0.0.1 SHELL=/b  14
   1581  \_ ps efo pid,command,nice   0
[student@servera ~]$ renice -n 8 1577
renice: failed to set priority for 1577 (process ID): Permission denied

标签:管理,Running,sleep,linux,进程,bogon,root,nice
From: https://www.cnblogs.com/xuruizhao/p/18292492

相关文章

  • Linux从入门到精通—— 如何在 Linux 系统中启用 Kubectl 命令自动补全
    如何在Linux系统中启用Kubectl命令自动补全一、背景在使用Kubernetes进行日常开发和运维工作时,kubectl命令行工具是不可或缺的一部分。为了提升工作效率,启用kubectl命令的自动补全功能是一个明智的选择。本文将指导你如何在基于Linux的系统上安装并配置kubectl命令的......
  • Linux web服务
    Web服务在Linux中存在许多可以提供web服务的软件,httpd、tomcat、nginx等Web通信的基本概念基于B/S架构的网页服务HTTPHTML【1】、httpd软件1、httpd软件安装httpd是软件基金会写出的软件基金会(Apache)yuminstall-yhttpdrpm-qahttpdhttpd-2.4.37-62.mod......
  • Linux FTP服务
    FTP服务安装vsftpd软件yuminstall-yvsftpd[root@moudle0114:47:28~]#rpm-qvsftpdvsftpd-3.0.3-36.el8.x86_64修改配置文件,开启无需验证的功能vim/etc/vsftpd/vsftpd.conf#修改内容如下,将NO改为YESanonymous_enable=YES启动服务#找到vsftpd程序[ro......
  • springboot非物质文化遗产管理系统-计算机毕业设计源码16087
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5修改信息流程2.2.6删除信息流程2.3 系统......
  • linux学习之登录密码(ssh/telnet)
    在Linux系统中,用户登录密码是用于安全验证用户身份的一种方式。登录密码通常是加密后存储在系统的/etc/shadow文件中。如果您想要获取Linux系统中用户的登录密码,这通常是不可能的,因为密码是经过加密处理的,而且出于安全考虑,没有直接的方式可以获取它们的明文形式。/etc/passwd......
  • 【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化
    随着航空、航天、近地空间遥感平台的持续发展,遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升,呈现出大数据特征。这为相关研究带来了新机遇,但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域、多尺度海量遥感数据处理需求。为解......
  • 2024年国内最经典好用的5款项目管理软件工具助你一路长虹
    目前市场上的项目管理软件众多,但是它们也都有一些共同的功能及特点。比如任务和进度管理、资源分配、财务监控、风险评估、协作增强以及报告和洞察力等。这些功能不仅提供了强大的工具来确保项目的高效执行和按时交付,而且还为团队成员和管理者提供了实时的数据和信息,帮助他们快速......
  • 搞管理千万别犯这3大禁忌,否则活该你当不了领导,切忌!
    搞管理千万别犯这3大禁忌,否则活该你当不了领导,切忌!禁忌一:不懂放权 美国总统罗斯福曾说过:“一个最好的管理者,很擅长知人善任。当下属在从事其职务时,管理者要懂得约束自己,不要去插手干涉。” 比如海底捞,每一个级别的权力非常清晰明了。 副总、总监拥有100万的签字权;采购......
  • C++发票识别接口轻松管理财务、发票识别sdk、增值税发票识别
    “营”“增”两种税是主流的流转税种,是两个独立而不能交叉的税种。也就是说交增值税的话就不交营业税,而交了营业税就不需要交增值税。而且,两者在征收的对象、征税范围、计税的依据、税目、税率以及征收管理等都有所不同,增值税在一些方面与营业税相比具有不少优势。营业税......
  • Superviso可视化监控进程
    如果您需要同时运行多个ThinkPHP命令,可以在Supervisor中为每个命令创建一个单独的程序段。以下是示例配置,其中包含两个ThinkPHP命令:command1.php和command2.php。在/etc/supervisor/conf.d/目录下创建一个名为thinkphp_commands.conf的配置文件,并编辑该文件,添加以下......