资讯详情

linux进程与计划管理

提示:文章完成后,目录可以自动生成,如何生成可以参考右边的帮助文档

文章目录

  • 一、程序与过程的关系
        • 1.程序
        • 2.进程
        • 3.程序、程序、线程的关系:
        • 4.程序和程序的区别
        • 5.进程状态
        • 6.线程的五种状态
  • 二、控制命令
        • 1.PS命令查看静态过程统计信息
        • 2.top命令 查看过程动态信息
        • 3.top命令全屏操作界面快捷键
        • 4.pgrep命令查询过程信息
        • 5.pstree命令以树形结构列出过程信息
        • 6.jobs在后台查看任务列表
        • 7.kill
        • 8.pkill
  • 三、计划任务管理
        • 一次性计划任务
        • 2.crontab 设置周期性任务


一、程序与过程的关系

1.程序

可执行代码和数据保存在硬盘、光盘等介质中 静态保存代码

2.进程

在CPU程序代码在内存中运行

动态执行代码

父、子进程

每个程序可以创建一个或多个过程

3.程序、程序、线程的关系:

线程包含在过程中,是过程中实际运行的单位,也是操作系统中独立运行的最小单位。它也被称为轻量级过程。一个过程可以并发多个线程,每个线程可以并行执行不同的任务,我们在任务管理器中看到的过程是由我们下载的应用程序产生的。当然,一个程序也可以包含多个过程。

4.程序和程序的区别

过程是动态的,程序是静态的

程序是二进制文件,过程是程序运行的过程

有生命周期和运行状态

5.进程状态

程序:二进制文件,静态/bin/date ,/usr/ sbin/sshd/ 过程:是程序运行、动态、生命周期和运行状态的过程。

6.线程的五种状态

1.新建(NEW):创建了一个新的线程对象 2.可运行(RUNNABLE):线程对象创建后,其他线程调用对象start()方法。该状态的线程位于可操作线程池中,等待线程调度选择并获得cpu的使用权。 3.运行(RUNNING):可运行状态的线程获得cpu时间片,执行程序代码 4.阻塞(BLOCKED):阻塞状态是指线程因某种原因放弃cpu使用权,即让出cpu timeslice,暂时停止运行。直到线程进入可运行状态,才有机会再次获得cpu timeslice转移到运行状态。有三种阻塞: ①等待阻塞:操作线程执行o.wait()方法,JVM将线程放入等待队列中。 ②同步阻塞:在获取对象的同步时,如果同步锁被其他线程占用,则运行线程LVM将线程放入锁池中。 ③其他障碍:操作线程执行Thread.sleep(longms)或t.join()方法,或发布I/O请求时,JVM线程将被阻塞。sleep()状态超时,join()等待线程终止或者超时、或者I/O处理完毕后,线程将重新转换为可操作状态。 5.死亡(DEAD):线程run()、main()方法执行结束,或因异常退出run()方法,线程结束生命周期。死亡线程不能重生。

二、控制命令

1.PS命令查看静态过程统计信息

-a:包括其他用户在内的所有流程信息都显示在当前终端下。"x"当选项结合时,显示系统中的所有过程信息 -u:以用户为主的格式输出过程信息 -x:在所有终端下显示当前用户的流程信息 x:在所有终端下显示当前用户的流程信息。 -e:显示系统中的所有过程信息。 -l:使用长(Long)格式显示过程信息。 -f:使用完整的(Full)格式显示过程信息。 常用的组合命令 ps -aux 以简单列表的形式显示过程 在这里插入图片描述 在上述输出信息中,第一行为列表标题,每个字段的含义描述如下: USER:用户账户名称启动此过程 PID:该进程在系统中的数字ID当前系统中唯一的数字。 %CPU:CPU占百分比 %MEM:内存占百分比 VSZ:虚拟内存使用的虚拟内存量(KB) RSS:过程占用的物理内存(KB) TTY:显示该过程在哪个终端上运行。不从终端开始的过程显示为?

STAT:过程状态

-D 不能唤醒的睡眠状态通常用于 I/O 情况 -R 该过程正在运行中 -S 这个过程处于睡眠状态,可以被唤醒 -T 停止状态,可能是在后台暂停或进程处于除错状态 -W 内存交互状态(从 2.6 内核开始无效) -X 死亡过程(不应发生) -Z 僵尸过程。过程已经暂停,但部分程序仍在内存中 -< 高优先级(以下状态) BSD 格式中出现) -N 低优先级 -L 被锁入内存 -s 包含子进程 -l 多线程 - 位于后台 -C 进程占用CPU的百分比

START:启动过程时间 TIME:进程占用CPU时间 COMMAND:启动过程命令的名称

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

查看过程动态信息 每三秒刷新一次 uptime 10:16:33 当前时间

up 20days 系统运行时间表明服务器连续运行20天

2 user 目前登录用户数量

lovd average 0.00 0.01 0.05 系统负载,即任务队列的平均长度。三个值分别为1分钟、5分钟和15分钟前的平均值。

Tasks系统任务信息:total总进程数,running正在运行的过程数,sleeping休眠过程数,stopped暂停进程数,zombie无响应的僵死过程数。

CPU占用信息:us用户占用,sy内核占用,ni优先调度占用,id空闲CPU,waI/O等待占用,hi中断占用硬件,si软件中断占用,st虚拟占用。

Mem内存占用信息:total总内存空间,free空闲内存,used已用内存,buff/cache,缓冲区总和物理内存和交换内存。

Swap占用交换空间:total总交换空间,free空闲交换空间,used已使用的交换空间,avail Mem物理空间可用。

PR 用户不能直接操作用户态调整

NI 过程优先级。nice 值。负值表示高优先级,正值表示低优先级,用户可以自行调整

SHR共享内存大小,单位kb SHR: shared memory共享内存 1.除了M自流程共享内存外,还包括其他流程共享内存 2.虽然过程中只使用了几个共享库函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式: RES - SHR 4、swap out之后,它就会下降

%CPU 上次更新到现在CPU时间占百分比 %MEM 过程中使用的物理内存百分比 TIME 进程使用的 CPU总时间为单位1/100秒COMMAND命令名/命令行

3.top命令全屏操作界面快捷键

默认3s 刷新一次,按s修改刷新时间按空间:立即刷新。 P:按CPU排序 M:按内存排序T:按时间排序 p:进程IP,根据启动时间,查看进程状态N键进行排序 数字键1:显示每个核心 cPU使用率u/U:指定显示用户 h:可以获得top在线帮助信息的程序 q:键可以正常退出top程序

4.pgrep命令查询过程信息

常用的参 -l;选项可同时输出对应的进程名以及PID -u:选项查询特定用户的进程 -t:选项查询在特定终端运行的进程 例1 pgrep -l “log” 例2 pgrep -l -U teacher -t tty1

5.pstree命令以树形结构列出进程信息

pstree命令默认情况下只显示各进程的名称,结合以下常用的参数使用: -p:选项使用时可以同时列出对应的PID号 -u:选项可以列出对应的用户名 -a:选项可以列出完整的命令信息

执行如下的"pstree -aup"命令可以查看当前系统的进程树,包括各进程对应的PID 号、用户名、完整命令等信息。从输出结果中可以看出,systemd进程确实是Linux操作系统中所有进程的"始祖" 例1 pstree -aup hmj

6.jobs命令查看处于后台的任务列表

-l 列出进程的 PID 和作业号 -p 只列出进程的 PID -s 只列出停止的进程 -r 只列出运行的进程

将后台的进程恢复运行 使用bg (BackGround,后台)命令,可以将后台中暂停执行(如按Ctrl十Z组合键挂起)的任务恢复运行,继续在后台执行操作。

使用fg命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。 除非后台中的任务只有一个,否则bg和 fg命令都需要指定后台进程的任务编号作 为参数。例如,执行如下的"fg 1"命令可以将之前挂起至后台的 wget进程重新调入前台执行。

[ root@wy ~]# jobs
[ 1 ]-       stopped     cp / dev/ cdrom mycd.iso
[ 2 ]+      stopped     top
[ root@wy ~]# fg 1

终止进程执行 当用户在前台执行某个进程时,可以按ctrl+c组合键强制进行中断(如命令长时间没有响应的情况下)。中断前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令。当按Ctrl+C 组合键无法终止程序或者需要结束在其他终端或后台运行的进程时,可以使用专用的进程终止工具kill、killall和 pkill。

7.kill

kill 命令用于删除进程

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

-l <信息编号若 不加信息编号选项,则会列出全部的信息编号 -s <信息名称或编号 指定要送出的信息

(HUP):重新加载进程 (KILL):杀死一个进程 (TERM):正常停止一个进程

8.pkill

-t 通过控制终端进行匹配 -u 匹配有效用户 ID -U 匹配实际用户 ID -g 匹配列出的进程组 ID -G 匹配真实组 ID -P 指定父进程号发送信号

三、计划任务管理

1.一次性计划任务

在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划的系统管理任务(如定期备份、定期采集监测数据)。CentoS系统中默认已安装了at、cronie 软件包,通过 atd和 crond 这两个系统服务实现一次性、周期性计划任务的功能,并分别通过 at、crontab命令进行计划任务设置. at [HH:MM] [yyyy-mm-dd] 任务设置完毕后按ctrl+D组合键提交 对于已经设置但还未执行(未到时间点)的计划任务,可以通过atq命令进行查询。但已执行过的at任务将不会再出现在列表中。 若要删除指定编号的at任务,可以使用atrm。删除后的at任务将不会被执行,并且不会显示在atq命令的显示结果中。但已经执行过的任务无法删除。

2.crontab 周期性任务设置

使用crontab命令设置的计划任务可以按预设的周期重复执行,可以大大减轻重复性系统管理任务的操作,软件包cronie 提供crontab工具,系统服务crond和配置文件 /etc/crontab。启用周期性任务也有一个前提条件,即对应的系统服务crond必须已经运行。

主要配置文件 全局配置文件,位于文件:/etc/crontab 系统默认的设置,位于目录:/etc/cron.*/ 用户定义的设置,位于文件:/var/spool/cron/用户名

常用命令格式 crontab -e [-u 用户名] #编辑计划任务 crontab -l [-u 用户名] #查看计划任务 crontab -r [-u 用户名] #删除计划任务

字段 说明
分钟 取值为从 0 到 59 之间的任意整数
小时 取值为从 0 到 23 之间的任意整数
日期 取值为从 1 到 31 之间的任意整数
月份 取值为从 1 到 12 之间的任意整数
星期 取值为从 0 到 7 之间的任意整数,0 或 7 代表星期日
命令 要执行的命令或程序脚本

时间数值的特殊表示方法 *:表示该范围内的任意时间

,:表示间隔的多个不连续时间点

-:表示一个连续的时间范围

/:指定间隔的时间频率

例如 0 18 * * 1-6 周一到周六每天18:00

25 7 * * 2,4,6 每周二、四、六的7点25分

0 6-16/1 * * * 6点到16点之间每1小时

0 * */2 * * 每2天

“分钟”字段应该填写一个具体的时间数值,不可是“*”,否则将会每一分钟都执行一次任务

标签: 74aup2g126gf二极管74aup2g125gd二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台