系统进程和计划任务管理

查看进程

ps命令的选项——查看静态进程(processes statistic)

ps 直接加选项:三种选项风格 (a)

  1. BSD风格(free 风格)(ps aux)
  2. Unix风格(ps -elf)
  3. GNU风格(Gnu is not Unix)(ps --user root)

常用选项

说明

a:

显示当前终端下的所有进程信息,包括其他用户的进程。与“x"选项结合时将显

示系统中所有的进程信息

u:

使用以用户为主的格式输出进程信息

x:

显示当前用户在所有终端下的进程信息

-e:

显示系统内的所有进程信息

-l:

使用长(Long)格式显示进程信息

-f:

使用完整的(FuI)格式显示进程信息

例:

1、执行[root@localhost ~]# ps aux命令后,将以简单列表的形式显示出进程信息

  • 第一行为列表标题,其中各字段的含义:
    • USER:启动该进程的用户账号的名称
    • PID:该进程在系统中的数字ID号,在当前系统中是唯一的
    • %CPU:CPU 占用的百分比
    • %MEM:内存占用的百分比
    • VSZ:占用虚拟内存(swap 空间)的大小
    • RSS:占用常驻内存(物理内存)的大小
    • TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端(TTY终端、虚拟终端)
    • STAT:显示进程当前的状态,如 S(休眠)、R(运行)、Z(僵死)、
    • START:启动该进程的时间
    • TIME:该进程占用的 CPU 时间
    • COMMAND:启动该进程的命令的名称

2、执行“ps -elf”命令,则将以长格式显示系统中的进程信息,并且包含更丰富的内容

3、执行不带任何选项的 ps 命令时,将只显示当前用户会话中打开的进程

4、由于系统中运行的进程数量较多,需要查询某一个进程的信息时可以结合管道操作和grep 命令进行过滤

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

  • 使用 ps 命令查看到的是一个静态的进程信息,并不能连续地反馈出当前进程的运行状态,若希望以动态刷新的方式显示各进程的状态信息,可以使用top 命令

        1、执行[root@localhost ~]# top命令后,将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒钟刷新一次,其作用基本类似于 Windows 操作系统中的任务管理器

  • 开头的部分显示了系统任务(Tasks)、CPU 占用、内存占用(Mem)、交换空间(Swap)等汇总信息
    • 系统任务(Tasks)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数
    • CPU 占用信息:us,用户占用;sy,内核占用;ni,优先级调度占用;id,空闲CPU;wa,I/0等待占用;hi,硬件中断占用;si,软件中断占用;st,虚拟化占用。要了解空闲的 CPU 百分比,主要看%id 部分
    • 内存占用(Mem)信息:total,总内存空间:free,空闲内存;used,已用内存;buff/cache,物理内存和交换内存的缓冲区总和
    • 交换空间(Swap)占用:total,总交换空间;free,空闲交换空间;used,已用交换空间;avail Mem,可用物理空间

pgrep命令——查询进程信息

  • 通过 pgrep 命令,可以只指定进程的一部分名称进行查询,结合"-l"选项可同时输出对应的进程名(否则只输出 PID 号,不便于理解)
  • 结合“-U”选项查询特定用户的进程
  • 结合“-t"选项查询在特定终端运行的进程

pstree命令——查看进程树

  • pstree 命令默认情况下只显示各进程的名称
  • 结合“-p”选项使用时可以同时列出对应的 PID 号
  • 结合“-u”选项可以列出对应的应户名
  • 结合“-a”选项可以列出完整的命令信息
    • 执行“pstree -aup"命令可以查看当前系统的进程树,包括各进程对应的PID 号、用户名、完整命令等信息,可以看出systemd进程确实是Linux操作系统所有进程的始祖

控制进程

1、启动进程

(1)手工启动进程

  • 由用户手工输入命令或者可执行程序的路径,可以至少启动一个进程。根据该进程是否需要占用当前的命令终端,手工启动又可以分为前台启动和后台启动
    • 进程在前台运行(如执行“ls-l"命令)时,用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行
    • 启动后台进程需要使用“&"操作符,将“&"操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作

(2)调度启动进程

  • 在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务,这时就需要用户事先进行调度安排,指定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务
    • 进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务

2、改变进程运行的方式

(1)挂起当前的进程

  • 当 Linux 操作系统中的命令正在前台执行时(运行尚未结束),按 Ctr+Z 组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用

(2)查看后台的进程

  • 需要查看当前终端中在后台运行的进程任务时,可以使用jobs命令,结合“-l"选项可以同时显示该进程对应的 PID 号
[root@localhost ~]# jobs -l

[1]+28584 停止 wget ftp://173.17.17.13/firefox-3.6.13.tar.bz2

(3)将后台的进程恢复运行

  • 使用 bg(BackGround,后台)命令,可以将后台中暂停执行(如按Ctr+Z组合键挂起)的任务恢复运行,继续在后台执行操作
  • 而使用fg命令(ForeGround,前台),可以将后台任务重新恢复到前台运行
  • (多个后台时,bg和fg都需要指定后台进程的编号)

3、终止进程执行

  • 当用户在前台执行某个进程时,可以按 Ctr+C 组合键强制进行中断
  • 当想无法终止程序或终止其他或后台进程时,可以使用专用的进程终止工具 kil、killall 和 pkill

(1)使用kill命令终止进程

  •         通过 ki 命令终止进程时,需要使用进程的 PID 号作为参数,若该进程已经无法响应终止信号,则可以结合“-9”选项强行终止进程

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

  •         可以结束多个想通名称的进程,同样也有“-9”选项

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

  •         使用 pki 命令可以根据进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程,大部分选项与 pgrep 命令基本类似,如“-U”(指定用户)、“-t”(指定终端)等选项,使用起来非常方便

计划任务管理

在 Linux 操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划的系统管理任务(如定期备份、定期采集监测数据)

1、at一次性任务设置

  • 设置一次性计划任务时,在 at命令行中依次指定计划执行任务的时间、日期作为参数(若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间),确认后将进入带“at>”提示符的任务编辑界面,每行设置一条执行命令,可以依次设置多条语句,最后按 Ctr+D组合键提交任务
[root@localhost ~]# date
Sun May 7 10:33:13 EDT 2017
[root@localhost ~]# at 10:35 2017-05-07
at> pgrep -U root |wc -l> /tmp/ps.root
at> <EOT>            //任务设置完毕后按 Ctrl+D 组合键提交
job 1 at Sun May 7 10:35:00 2017
[root@localhost ~]# cat /tmp/ps.root        //等过了计划时间后验证命令结果
202
  • 对于已经设置但还未执行(未到时间点)的计划任务,可以通过 atg 命令进行查询
  • 若要删除指定编号的 at任务,可以使用 atrm 命令

2、crontab周期性任务设置

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

        1、crontab的配置文件和目录

                (1)/etc/crontab--系统任务配置文件

                (2)/varlspool/cron/--用户 cron 任务的配置文件存放目录

  •                 由用户自行设置(使用 crontab 命令)的 cron 计划任务将被保存到目录var/spool/cron/中,文件名与用户名相同
[root@localhost ~]# ls -l /var!spoolcron/*
-rw------.1 root root 33 May 7 11:01 /var/spool/cron/root
2、使用crontab 命令管理用户的计划任务
  • -e:编辑计划任务列表
  • -u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有 root 用户有权限使用此选项(用于编辑、删除其他用户的计划任务)
  • -1:列表显示计划任务
  • -r:删除计划任务列表

                (1)编辑用户的任务计划列表

                        执行“crontab -e”命令后,将打开计划任务编辑界面(与v中的操作相同),用户可以自行添加具体的任务配置,每行代表一个记录,配置的格式与/etc/crontab 文件中的主体部分类似

01 *** * /root/run hourly_cmd
02 4*** /root/run_daily_cmd
22 4**0 /root/run weekly_cmd
42 4 1** /root/run_monthly_cmd
50 3 2 1 * /root/run_yearly_cmd

分钟

小时

日期

月份

星期

执行的命令

取值为 0~59 的任意整数

取值为 0~23 的任意整数

取值为 1~31 的任意整数(日期在该月份中必须有效)

取值为 1~12 的任意整数

取值为 0~7的任意整数,0或7代表星期日

可以是普通的命令,也可以是自己编写的程序脚本

01

*

*

*

*

run_hourly_cmd

02

4

*

*

*

run daily_cmd

22

4

*

*

0

run weekly_cmd

42

4

1

*

*

run_monthly_cmd

50

3

2

1

*

run yearly cmd

除了“*”以外,还可以使用“”(减号)、“,”(逗号)、"”(斜杠)与数字构成表达式来表示较复杂的时间关系

减号“-”:可以表示一个连续的时间范围,如“1-4”表示整数 1、2、3、4

逗号“,”:可以表示一个间隔的不连续范围,如“3,4,6,8”

斜杠符号“/:可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔 3天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值