ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

系统进程与计划任务管理的基本知识

2021-09-24 19:31:39  阅读:194  来源: 互联网

标签:top 基本知识 命令 任务 进程 root localhost


一、进程管理

1.1、程序、进程和线程的关系

程序:存放在磁盘上静态代码

进程:

1、用户角度:进程是程序的一次动态执行过程。

2操作系统:进程是操作系统分配资源(CPU、内存、硬盘)的最小单位

      线程是CPU执行任务的最小单位。

线程存在进程中,进程中资源共享。

多任务:同时运行多个进程,

单核CPU的主机,如何实现并发运行进程?         时间片

1.2、ps命

查看静态的进程统计信息(report a snapshot of the current processes)

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

a:显示当前终端下的所有进程信息,包括其他用户的进程。 u:用户信息。

x;显示当前用户在所有终端下的进程详细信息。 -e:显示系统内的所有进程信息。。 -1:使用长格式显示进程信息。

-f:使用完整的格式显示进程信息(显示父进程)。。 -F:显示更完整格式的进程信息

-H:以进程层级格式显示进程相关信息。

 执行“psaux”命令后,将以简单列表的形式显示出进程信息。

[root@localhost~]#ps aux

 USER:启动该进程的用户账号的名称。

PID:该进程在系统中的PID号,在当前系统中是唯一的。

%CPU:CPU占用的百分比。

%MEM:内存占用的白分比。

vsz:占用虚拟内存swap空问的大小。

 RSS:占用常驻内存物理内存的大小。。

TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端

STAT:显示了进程当前的状态:

 D:不可中断睡眠

 s:可中断的睡眠

 R:就绪或运行状态

T:中止状态或未跟踪未停止等待。

 Z:僵死状态

<:高优先级进程

 N:低优先级进程

+:前台进程组中的进程(进程的领导者)

l:多线程的进程。

s:会话进程的首进程

START:启动该进程的时问。

TIME:该进程占用的CPU时问。

COMMAND:启动该进程的命今的名称。

若执行“ps-e1f”命令,则将以长格式显示系统中的进程信息,并且显示内容较多。输出信息中还包括PPID列(表小对应进程的父进程的PID号)。

[root@localhost ~]# ps-elf

1.3、top命令

查看进程动态信息。

top命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次。

上述输出信息中,开头的部分显示了系统任务Tasks、CPU占用、内存占用Mem交换空间Swan等信息,下方将依次显示当前进程的排名情况。。

top-16:58:24当前系统时间;1:54:系统已经运行1小时54分钟:2users当前登录2个用户:loadaverage:0.00,0.00,0.00:系统平均负载:(1分钟的,5分钟的,15分钟的)状态。

系统任务Tasks信息:total:总进程数;running:正在运行的进程数;sleeping:休眠的进程数;stopped:中止的进程数;zomibe:僵死无响应的进程数。

CPU占用信息:us:用户占用:sy:内核占用:ni:优先级调度占用:id:空闲CPU:wa:1/0等待占用:hi:硬件中所占用:si:软件中断占用:st;虚拟化占用。Rt:实时变化。

内存占用Mem信息:total,总内存空间:used,已用内存;free,空闲内存:buffers.缓冲区域。

交换空问swap占用:total,总交换空问:used,已用交换空间:free,空闲交换空间: cached,缓存空间。

PID:进程号

USER:进程所有者的用户名

PR:优先级

N:nice值。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存总量,单位kb.

RES:进程使用的、未被换出的物理内存大小,单位kb

 SHR:共享内存大小,单位kb。

s:进程状态。

 COMMAND: 命令

常用选项:

-d:指定刷新的间隔时间,单位秒

-b:以批量处理模式操作(非交互),一般与n同时使用。

 -n:指定循环显示的次数 u:指定用户名

 -p:指定进程号

各选项的使用示例:

(1) top-d 指定刷新的间隔时间。

[root@localhost~]#top-d5

(2) topbn以批量处理模式操作同时指定循环显示的次数。

[root@localhost~]#top-b-n2

注意:当CPU占用率过高时,不应再直接执行1op 命令查看,可以将信息存入一个文件内查看,以免CPU占用率过高导致崩溃。操作如下,

[root@localhost~]#topb-n1>/top.txt

 [root@localhost ~]# cat/top.txt

 (3)top-u指定用户名

 [root@lacalhost ~]# top -u lisa

 (4)topp指定进程号

 [root@localhost ~]# top -p 7767

 在top命令的全研操作界面中,可以按P健根据CPU占用情况对进程列表进行排序,或按M键根据内存占用情况进行排序,按N键根据启动时间进行排序。按h键可以获得 lop程序的在线帮助信息,按q键可以正常退出top程序。

 常用交互命令

 P:根据CPU使用自分比大小进行排序(默认进入时即为此排序)

 M:根据驻留内存大小进行排序。

 T:根据累积时间进行排序。

 k:终止一个进程。

 q:退出程序。

 r:重新安排一个进程的优先级别

 1.4、pgrep命令(大致了解)

 查询特定进程信息

 pgrop命令止是用来查询特定进程信息的专用工具。使用pgrcp命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性查询特定进程的PID号。

 -l:显示进程名。

 -u指定特定用户

 t:指定终端

 a:显示完整格式的进程名

 -P pid:显示指定进程的子进程

 [root@localhost ~]# pgrep-1"log

 1.5、pstree命令

 pstree命令可以输出Linux系统中各进程的树形结构,判断出各进程之间的相互关系(父、子进程)。pstree命令默认情况下只显示各进程的名称。

 -p:选项使用时可以同时列出对应的P1D号。

 -u:选项可以列出对应的用户名。

 -a:选项可以列出完整的命令信息。

 显示当前系统可用信号:kill l trap

l:列出当前kill能够使用的信号(注意是小写L)。

[root@localhost ~]# kill -1

常用信号:man 7 signal

1) SIGUUP:无须关闭进程而让其重读配置文件。

2)STGTNT:终止正在运行的进程;相当于Ctr1+c.

9)SIGKILL:杀死正在运行的进程(强制立刻杀死进程)。

15)SICTERM:终止正在运行的进程(可能不会立即生效,会等进程保存完所有数据才正常退出)。

指定信亏的方法:*

(1) 信号的数字标识:1,2 ,9

(2)信号完整名称:SIGLIUP

(3)信号的简写名称:IIUP

显示当前系统可用信号:kill l trap

l:列出当前kill能够使用的信号(注意是小写L。[root@localhost ~]# kill -1

显示当前系统可用信号:kill l trap

l:列出当前kill能够使用的信号(注意是小写L。[root@localhost ~]# kill -1

 1.6、终止进程

 Ctr1+C中断正在执行的命令。

 Kill,killall命令

 kill:向进程发送控制信号,以实现对进程管理。

 显示当前系统可用信号:ki11 -1 trap -1.

 -l:列出当前kill能够使用的信号(注意是小写L)

 [root@localhost ~]# kill -I

 常用信号:man7signal

 1) SIGHUP:无须关闭进程而让其重读配置文件。

 2)SIGINT:终止正在运行的进程:相当于Ctrltc

 9)SIGKILL:杀死正在运行的进程(强制立刻杀死进程)

 执行“pstree-aup”命令可以查看当前系统的进程树,包括各进程对应的PID号、用户名、完整命令等信息。

 [root@localhost~]#pstree -aup

 1.7、pkill命令

 作用:根据特定条件终止相应的进程。

 常用选项:

 -u:根据进程所属的用户名终止相应进程

 -t:根据进程所在的终端终止相应进程。

 二、任务管理

 2.1、基本概念

 任务

 登录系统取得shell之后,在单一终端接口下启动的进程。

 前台

 在终端接口上,可以在提示符上用户操作的环境。

 后分

不显示在终端接口的环境-

 2.2、于工启动

 (1)前台启动:用户输入命令,直接执行程序

 [root@localhost~]#ping127.0.0.1

 (2)后台启动:在命令行尾加入“&”符号。

 [root@localhost~]#ddif=/dev/zeroof=/testfilebs=1M count=2048&

 [1]11437

 (3)nohup是使程序永久执行的方式

 Rm COMMAND ignoringhangupsignals可以看到是“运行命令,忽略挂起信号”就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会。

 &是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出.

 那么,我们可以巧妙的吧他们结合起来用就是

 nohup COMMAND &

 这样就能使命令永久的在后台执行

 [root@localhost~]# nohup tail-f/var/log/messages&

 另外,nohup执行后,会产生子文件,把命令的执行中的消息保存到这个文件中,一般在当前目录下,如果当前目录不可写,那么自动保存到执行这个命令的用户的home目录下,例如root的话就保存在/root/下这个我们常在运行命令和脚本中常用到的。

 2.3、进程的前后台调度

 ctr1+%:将正在前台运行的任务放入后台暂停。

 jobs:查看处于后台的任务列表

 -l 列山进程 ID) 及其它信息。

 -p仅列出进程TD。

 -n仅列出自从上次输出了状态变化提示(比如显示有进程退出)后的发生了状态变化的进程。

 -r仅显示运行中的作业。

 -s仅显小停止的作业。

 -x运行命令及其参数,并用新的命令的进程ID替代所匹配的原有作业的进程组

 fg:将后台进程恢复到前台运行,可指定任务程序号。

 bg:将后台暂停的进程调至后台运行。

 at:管理一次性任务计划。

 crontab:管理周期任务计划。

 [root@localhost ~]# dd if=/dev/zero of=/testfile bs=1M count=2048

 2.4、at一次性任务设置

 at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行。需要注意的是,计划执行任务的时间、日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务.

 设置一次性计划任务时,在at命令行中依次指定计划执行任务的时间、日期作为参数(若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时问),确认后将进入带“at>”提示符的任务编辑界面,每行设置一条执行命令,可以依次设置多条语句,最后按Ctrl+D组合键提交任务即可。所设置的命令操作将在计划的时问点被依次执行。

 at命令使用方法:

 At HH:MM今天的HHMM时问执行,若是时问已经超过,则明天的H:MM时问执行

 at hh:MM YYYY-MM-DD指定具体的执行口期和时间

 at HH:MM+number minutes hours daysweeks)某个时间点+分钟|小时天星期执行

 基本操作:

 Curl+D保存退出

alq查询现有的一次性任务计划 atrm[任务序号]删除第几项任务

 2.5、crontab周期性任务设置

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

 [root@localhost ~]# systemctl

 crontab的配置文件和目录

 crond通过多个月录和文件设置计划任务不同类型的任务由不同的配置文件来设置。[root@localhost~]#Is/etc/cron.两次tab键

 cron.d/cron.daily/cron.deny cron.hourly/ cron.monthly/ cron.weekly/

 /etc/crontab文件中设置的是维护Linux系统所需的任务,由Linux系统及相关程序在安装时自动设置,不建议用户手动修改此文件。该文件包括了设置shel1环境、可执行路径等变量的操作,以及每小时、每大、每周、每月需要执行的任务月录。

 [root@localhost ~]#cat/etc/crontab

 SHELL=/bin/bash 设置执行计划任务的shell环境

 PATH=/sbin:/bin:/usr/sbin:/usr/bin 定义可执行命令及程序的路径

 MAILTO=root 将任务输出信息发送到指定用户的邮箱

 HOME=/ 执行计划任务时使用的主目录

 crond守护进程会自动检查/etc/crontab文件、/etc/cron.d/日录及/var/spool/cron目录中的改变,如果发现有配置更改,就会被载入内存,所以当某个crontab文件改变后并不需要重新启动erond守护进程就可以使设置生效。

 使用crontab命令管理用户的计划任务

设置用户的周期性计划任务列表主要通过crontab命令进行,结合不同的选项可以完成不同的计划任务管理操作。

-e:编辑计划任务列表。

-u:指定所管理的计划任务属于哪个用户,默认时针对当前登录用户,一般只有root用户有权限使用此选项用户编辑、删除其他用户的计划任务。

-l:列表显小计划任务。

-r:清空计划任务列表。

 crontab-r命令:可以删除用户的计划任务列表

[root@localhost ~]# crontab -r

[root@localhost~]#crontab-l

 no crontab for root

 注意:

1、配置完计划任务后建议重启计划任务服务。

2、计划任务信息要定时备份。

 TYPE=Ethernet                    显示使用以太网类型

BOOTPROTO=static                网络类型 DHCP

DEFROUTE=yes

NAME=ens33

DEVICE-ens33

ONBOOT=yes

IPADDR=192.168.1.25

 NETMASK=255255.255.0

 GAETWAY=192.168.1.1

9.24进程管理和周期性计划任务

程序:保存在硬盘上的静态代码

进程:

用户角度:操作系统:父进程子进程

 zombie僵尸进程

1、重启系统生产环境一般不重启

2、把僵尸进程变成孤儿进程,systemd

50.ps  aux

      -elf

51 . top

 

标签:top,基本知识,命令,任务,进程,root,localhost
来源: https://www.cnblogs.com/zhang9/p/15331861.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有