首页 > 系统相关 >进程任务管理

进程任务管理

时间:2024-06-04 18:02:28浏览次数:24  
标签:后台 管理 占用 信息 命令 任务 进程 执行

一.   查看和控制进程

        程序是保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行的计算机程序。在Linux操作系统中,每个程序启动后可以创建一个或多个进程。列如,提供Web服务的httpd程序,当有大量用户同时访问Web页面时,httpd程序可能会创建多个进程来提供服务。

1.  查看进程

        了解系统中进程的状态是对进程进行管理的前提,使用不同的命令工具可以从不同的角度查看进程状态。下面是几个常用的进程查看命令,命令执行结果仅供参考,因环境变量不同执行结果有差异。

        ps命令——查看静态的进程统计信息

        ps 命令是 Linux 操作系统中最为常用的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。通过不同的命令选项,可以有选择性地查看进程信息

  •  a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息
  • u:使用以用户为主的格式输出进程信息
  • x:显示当前用户在所有终端下的进程信息。
  • -e:显示系统内的所有进程信息。
  • -l:使用长(Long)格式显示进程信息。
  • -f:使用完整的(Ful)格式显示进程信息
        以上列出的是 ps 命令中常用的几个选项,需要注意的是,有一部分选项是不带"-"前缀的(添加“-”前缀后含义可能会有出入)。习惯上将上述选项组合在起使用,如执行“ps aux”或“ps -elf”命令。执行如下的“ps aux”命令后,将以简单列表的形式显示出进程信息,如下图所示

ps aux命令执行结果

上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。

  • USER:启动该进程的用户账号的名称。
  • PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
  • %CPU:CPU 占用的百分比。
  • %MEM:内存占用的百分比。
  • VSZ:占用虚拟内存(swap 空间)的大小。
  • RSS:占用常驻内存(物理内存)的大小。
  • TTY:表明该进程在哪个终端上运行。“?"表示未知或不需要终端。
  • STAT:显示进程当前的状态,如 S(休眠)、R(运行)、Z(僵死)、<(高优先级)、N(低优先级)、s(父进程)、十(前台进程)。对处于僵死状态的进程应该予以手动终止。
  • START:启动该进程的时间。
  • TIME:该进程占用的 CPU 时间。
  • COMMAND:启动该进程的命令的名称。
若执行如下的“ps -elf"命令,则将以长格式显示系统中的进程信息,并且包含更丰富的内容。例如,输出信息中还包括 PPID 列(表示对应进程的父进程的 PID 号),如下图所示

ps -elf命令执行结果

        2.top 命令——查看进程动态信息

        使用 ps 命令查看到的是一个静态的进程信息,并不能连续地反馈出当前进程的运行状态。若希望以动态刷新的方式显示各进程的状态信息,可以使用 top命令。top 命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括 CPU、内存等系统资源占用情况,默认情况下每三秒钟刷新一次,其作用基本类似于 Windows 操作系统中的任务管理器,执行如下“top”命令可以获得如下图所示的结果。

top命令执行结果
      上述输出信息中,开头的部分显示了系统任务(Tasks)、CPU 占用、内存占用(Mem)、交换空间(Swap)等汇总信息,汇总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下。
  • 系统任务(Tasks)信息:total,总进程数;running,正在运行的进程数;sleeping休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数。
  • CPU 占用信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,1/0等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。要了解空闲的 CPU 百分比,主要看%id 部分。
  • 内存占用(Mem)信息:total,总内存空间:free,空闲内存;used,已用内存;buff/cache,物理内存和交换内存的缓冲区总和。
  • 交换空间(Swap)占用:total,总交换空间;free,空闲交换空间;used,已用交换空间;avail Mem,可用物理空间

        例如,从上述“Tasks……”部分的信息可得知当前共有 207 个进程,其中正在运行的 1个休眠状态的 206个,停止和僵死状态的 0个。
        在 top 命令的全屏操作界面中,可以按P键根据 CPU 占用情况对进程列表进行排序,或按 M 键根据内存占用情况进行排序,按 N键根据启动时间进行排序,按h键可以获得 top程序的在线帮助信息,按q键可以正常地退出 top 程序。
        若通过 top 排名工具发现某个进程 CPU 占用率非常高,需要终止该进程的运行,可以在 top 操作界面中按k键,然后在列表上方将会出现“PID to signal/kill [default pid= 3180]:的提示信息,根据提示输入指定进程的 PID 号并按 Enter 键,出现“Send pid 5597 signal15/sigtemm]"的二次确认的提示信息,然后按 Enter 键确认即可终止对应的进程。

 3.pgrep命令——查询进程信息

        当使用 ps 命令查询某个进程的 PID 信息时,往往需要结合 grep 命令对输出结果进行过滤,但这样使用非常不方便,而 pgrep 命令正是查询特定进程信息的专用工具。使用 pgrep命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性查询特定进程的PID 号。

        通过 pgrep 命令,可以只指定进程的一部分名称进行查询,结合“-!”选项可同时输出对应的进程名(否则只输出 PID 号,不便于理解)。例如,若要查询进程名中包含“og”的进程及其 PID 号,可以执行以下操作。

4.pstree命令——查看进程树 

        pstree 命令可以输出 Linux 操作系统中各进程的树形结构,以更加直观地判断各进程之间的相互关系(父进程、子进程)。pstree 命令默认情况下只显示各进程的名称,结合“-p”选项使用时可以同时列出对应的 PID 号,结合“-u"选项可以列出对应的用户名,结合“-a”选项可以列出完整的命令信息。
        例如,执行如下的“pstree -aup"命令可以查看当前系统的进程树,包括各进程对应的PID 号、用户名、完整命令等信息。从输出结果中可以看出,systemd 进程确实是 Linux 操作系统中所有进程的“始祖”。

二. 控制进程 

        1.启动进程

        在 Linux 操作系统中,可以由用户手工启动或者按预订计划调度启动新的进程。

(1)手工启动进程

        由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否需要占用当前的命令终端,手工启动又可以分为前台启动和后台启动。
        进程在前台运行(如执行“Is-"命令)时,用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作。
        启动后台进程需要使用“&”操作符,将“&"操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。例如,当使用 cp 命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&”符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作,代码如下:

 

         (2)调度启动进程
        在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划任务进程均在后台运行,不会占用用户的命令终端。
        进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务。
        2.改变进程的运行方式
        (1)挂起当前的进程
当 Linux 操作系统中的命令正在前台执行时(运行尚未结束),按 Ctr+Z 组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。例如,在使用 wget 命令下载 Firefox 软件包时,发现下载速度缓慢,为了不耽误其他操作,可以按 Ctr+Z组合键将该下载任务调入后台并暂停执行,代码如下:

         (2)查看后台的进程
        需要查看当前终端中在后台运行的进程任务时,可以使用jobs 命令,结合“-!"选项可以同时显示该进程对应的 PID 号。在 jobs 命令的输出结果中,每一行记录对应一个后台进程的状态信息,行首的数字表示该进程在后台的任务编号。若当前终端没有后台进程,将不会显示任何信息。例如,执行如下的“jobs -"命令可以看到前面挂起的 wget 下载任务的相关信息。

        (3)将后台的进程恢复运行
        使用 bg(BackGround,后台)命令,可以将后台中暂停执行(如按Ct+Z组合键挂起)的任务恢复运行,继续在后台执行操作;而使用fg命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。
        除非后台中的任务只有一个,否则bg 和fg命令都需要指定后台进程的任务编号作为参数。例如,执行如下的“g 1”命令可以将之前挂起至后台的 wget 进程重新调入前台执行。

 3.终止进程执行

        当用户在前台执行某个进程时,可以按 Ctr+C 组合键强制进行中断(如命令长时间没有响应的情况下)。中断前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令。当按 Ctr1+C组合键无法终止程序或者需要结束在其他终端或后台运行的进程时,可以使用专用的进程终止工具 kil、killall 和 pkil。
        (1)使用 kil 命令终止进程
        通过 ki 命令终止进程时,需要使用进程的 PID 号作为参数。无特定选项时,kil 命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合“-9”选项强行终止进程。强制终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已时不要轻易使用“-9”选项。
        例如,若 SSH 服务的 sshd 进程的 PID 号为 5822,则执行“kil 5822”命令后可以将进程 sshd 终止,具体操作如下:

 

 (2)使用 killall 命令终止进程

        使用 killall 命令可以通过进程名称来终止进程,当需要结束系统中多个相同名称的进程时,使用 killal 命令将更加方便,效率更高。killa 命令同样也有"-9"选项。例如,执行如下的“killall -9 vim”命令可将所有名为 vim 的进程都强行终止。

 (3)使用 pkil 命令终止进程

        使用 pkil 命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程,大部分选项与 pgrep 命令基本类似,如“-U”(指定用户)、“-t”(指定终端)等选项,使用起来非常方便。例如,若要终止由用户 hackli 启动的进程(包括登录 Shel),可以执行以下操作。

标签:后台,管理,占用,信息,命令,任务,进程,执行
From: https://blog.csdn.net/m0_68625092/article/details/139448022

相关文章

  • 2024年5月信息系统项目管理师(高级)考试综合知识真题及参考答案
    1、关于项目可行性研究的描述不正确的是()A.初步可行性研究报告,必须包含项目的主要投资支出B.初步的可行性研究报告可作为正式文件,支持项目决策C.初步可行性研究报告的核心内容不包括项目进度安排D.初步可行性研究是详细可行性研究的基础[参考答案]C2、信息系统战略......
  • 线程池 + 回调 (进程赤用法类似)
    importosimportthreadingimporttimefromconcurrent.futuresimportThreadPoolExecutorfromfunctoolsimportwrapsThreadPool=ThreadPoolExecutor(max_workers=10)defthread_executor(a):print("Iamslave.Iamworking.Iamgoingtosleep3......
  • 安防综合管理系统EasyCVR视频汇聚平台GA/T 1400协议中的关键消息交互示例
    在当今的信息化时代,公共安全防范日益成为保障社会和谐稳定的关键。视频监控系统作为现代安全防范的重要手段,正不断在公安、交通、城市管理等领域发挥着越来越重要的作用。而GA/T1400协议视图库,作为公安视频图像信息应用系统的标准,与视频监控系统的结合使用,无疑为提升监控效果、强......
  • linux进程和计划任务管理
    一、查看和控制进程程序是保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合,而进程是在 CPU 及内存中处于动态执行状态的计算机程序。在 Linux 操作系统中,每个程序启动后可以创建一个或多个进程。例如,提供 Web 服务的 httpd 程序,当有大量用户同时访问Web......
  • Linux进程和计划任务管理
    查看和控制进程程序是保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合,而进程 是在CPU 及内存中处于动态执行状态的计算机程序。查看进程了解系统中进程的状态是对进程进行管理的前提,使用不同的命令工具可以从不同的 角度查看进程状态。1.ps命令——查看......
  • 2024年公共事务管理与社会服务国际会议(ICPAMSS2024)
    2024年公共事务管理与社会服务国际会议(ICPAMSS2024)会议简介2024国际公共事务管理与社会服务会议(ICPAMSS2024)将在广州隆重举行。本次盛会诚挚邀请来自世界各地的公共事务管理和社会服务领域的专家、学者和从业者齐聚一堂,探索行业发展前沿,分享实践经验,推动理论创新。会议将......
  • 第一个简易ssh项目分析,基于ssh的简易教师信息管理系统
    #这是一个关于新手的ssh项目,以及首次对ssh的配置启动复盘#1.项目结构介绍1.1大致结构图展示1.2整体说明1.2.1:配置ssh项目使用maven,在pom.xml中将ssh相关插件进行配置,当然,不管使 用maven还是直接下载ssh三部分的相关插件通过导入的方式进行ssh环境配置,其最终结果都是ss......
  • 任务大师什么配置能玩?Quest Master官方推荐配置一览
    QuestMaster/任务大师不仅将为玩家提供丰富的地牢挑战,还带来了地牢创造的丰富玩法,让勇士们的冒险欲望不断膨胀,勇闯混沌洞穴,击穿他人的设计或建造独一无二的幽深地牢。有感兴趣的玩家想知道QuestMaster/任务大师什么配置能玩,下面本文将为大家带来QuestMaster/任务大师的官方......
  • aiops时代, 10分钟学会用AIAnsbile去调试ansible任务
    AIAnsible:aiansible地址:https://github.com/sunnycloudy/aiansible调试ansible,用ai自动注释,自动分析报错,自动给出建议技术问答:qq群:937374915ai提示效果/example:默认是中文版,中文版效果:!如果要设置成英文版:exportAIANSIBLE_LANG=EN或在aiansible中用......
  • postgresql 用户管理
    --创建用户createuserkingron;--修改用户密码alteruserkingronwithpassword'1234';--限制用户的连接数alteruserkingronconnectionlimit1;--设置用户密码过期时间alteruserkingronvaliduntil'2024-2-2';--密码永不过期alteruserkingronvali......