云计算【第一阶段(22)】Linux的进程和计划任务管理

打印 上一主题 下一主题

主题 532|帖子 532|积分 1596

目次
一、查看进程
1.1、步调和进程的关系
1.2、查看进程
1.2.1、静态查看进程信息ps
​编辑
1.2.1.1、实行
 1.2.2、动态查看进程信息top
1.2.2.1、实行
 1.2.2.2、top 命令全屏操纵界面快捷键
 1.2.3、pgrep根据特定条件查询进程pid信息
1.2.4、pstree命令以树形结构列出进程信息
二、控制进程
2.1、进程的启动方式
2.2、进程的前后台调度
2.2.1、挂起当前的进程
2.2.2、jobs命令查看处于后台的任务列表
2.2.3、fg、bg命令将后台的进程恢复运行
2.3、终止进程实行
2.3.1、使用 kill 命令终止进程
2.3.2、使用 killall 命令终止进程
2.3.3、使用 pkill 命令终止进程
三、at一次性任务设置
 3.1、实行
3.2、查询计划和删除计划
四、crontab周期性任务设置
4.1、管理crontab计划任务
4.1.1、-e编辑内容格式
4.2、时间数值的特殊体现方法
4.3、实行

一、查看进程

1.1、步调和进程的关系

步调


  • 生存在硬盘,光盘等介质中的可实行代码和数据
  • 静态生存的代码
进程


  • 在cpu及内存中运行的步调代码
  • 动态实行的代码
  • 父,子进程:每个步调可以创建一个或多个进程
1.2、查看进程

1.2.1、静态查看进程信息ps

   ps    参数
  常用的参数


  • -a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示体系中所有的进程信息。
  • -u:使用以用户为主的格式输出进程信息。
  • -x:显示当前用户在所有终端下的进程信息。
  • -e:显示体系内的所有进程信息。
  • -l:使用长格式显示进程信息。
  • -f:使用完整的格式显示进程信息。
常用的选项组合
ps    -aux        #将以简单列表的情势显示出进程信
ps     -elf        #将以长格式显示体系中的进程信息
 


字段描述USER启动该进程的用户账号的名称PID该进程在体系中的唯一数字ID号%CPUCPU占用的百分比%MEM内存占用的百分比VSZ虚拟内存使用量(KB)RSS物理内存使用量(KB)TTY进程运行的终端。非终端启动的进程显示为? pts: 长途登录终端,tty1-tty6: 本地终端(可能包括图像界面和字符界面),?: 体系自身实行的进程STAT 进程状态:D: 不可中断的休眠状态R: 运行状态S: 休眠状态T: 停止状态Z: 僵尸进程
其他状态如<, N, L, s, l, + 也有各自的含义
START启动该进程的时间TIME该进程占用的CPU时间COMMAND启动该进程的命令的名称  STAT增补
状态代码描述D不可中断的休眠状态。通常用于等候I/O操纵完成。这并不意味着它是体系守护进程,但守护进程可能会处于此状态。R运行状态。进程正在运行或准备运行。S休眠状态。进程在等候某个条件创建以便继承实行。T停止状态。进程收到SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU信号后停止实行。Z僵尸状态。进程已经终止,但父进程尚未采取其资源。<进程运行在高优先级上(这个符号通常不直接出现在STAT列中,而是可能作为其他信息的一部门)。N进程运行在正常优先级上(这个符号通常不直接出现在STAT列中,而是可能作为其他信息的一部门)。L进程有页面锁定在内存中(这个状态代码可能不直接出现在STAT列中,而是作为进程属性的一部门)。s进程是控制终端的会话领导(session leader)。l进程是多线程的(这个状态代码可能不直接出现在STAT列中,而是作为进程属性的一部门)。+进程在前台运行(这个状态代码可能不直接出现在STAT列中,而是作为进程状态的一部门)。


列名解释F内核分配给进程的体系标志S进程的状态UID启动这些进程的用户PID进程的进程IDPPID父进程的进程号(假如该进程是由另一个进程启动的)C进程生命周期中的CPU利用率PRI进程的优先级(越大的数字代表越低的优先级)NI谦让度值用来参与决定优先级ADDR进程的内存地址SZ假如进程被换出,所需互换空间的大致大小WCHAN若该进程在就寝,则显示就寝中的体系函数名STIME进程启动时的体系时间TTY进程启动时的终端装备(pts/0-255代表虚拟终端,tty1-tty7代表本地控制台终端)TIME运行进程需要的累计CPU时间CMD进程的启动命令 状态描述D不可被叫醒的就寝状态,通常用于 I/O 情况R该进程正在运行S该进程处于就寝状态,可被叫醒T停止状态,可能是在后台暂停或进程处于除错状态W内存交互状态(从 2.6 内核开始无效)X死掉的进程(应该不会出现)Z僵尸进程。进程已经中止,但是部门步调还在内存当中<高优先级(以下状态在 BSD 格式中出现)N低优先级L被锁入内存s包罗子进程l多线程(小写 L)+位于后台C进程占用CPU的百分比
1.2.1.1、实行

在终端A实行 编写vim  a.txt

打开另一个终端B
ps -aux |grep a.txt

S 体现就寝状态, + 体现前台

这个终端A上 按下: ctrl+z 停止

再次查看状态

查看状态 T 体现停止状态

扩展:
ctrl  -   c 是发送 SIGINT 信号,终止一个进程
ctrl  -   z 是发送 SIGSTOP 信号,挂起一个进程。将作业放置到后台(暂停)
ctrl  -   d 不是发送信号,而是体现一个特殊的二进制值,体现 EOF。代表输入完成大概注销
 

 1.2.2、动态查看进程信息top

   top   命令
  


类别描述体系任务(Tasks)total总进程数running正在运行的进程数sleeping休眠的进程数stopped中止的进程数zombie僵死无响应的进程数CPU 占用us用户占用sy内核占用ni优先级调度占用id空闲CPU(百分比)waI/O 等候占用hi硬件中断占用si软件中断占用st虚拟化占用内存占用(Mem)total总内存空间free空闲内存used已用内存buff/cache物理内存和互换内存的缓冲区总和avail Mem考虑buff/cache后可用的物理内存互换空间(Swap)total总互换空间free空闲互换空间used已用互换空间avail Mem注意:这里的avail Mem与内存占用中的avail Mem意义差别,假如体现Swap的可用空间,则无需此列 下面白色那排扩展
USER进程所有者的用户名
PR优先级(由内核动态调解)
NInice 值(进程优先级)。负值体现高优先级,正值体现低优先级
VIRT虚拟内存使用量(VSZ)
RES常驻内存使用量(RSS)
SHR共享内存大小(kb)
S进程状态(D=不可中断的就寝,R=运行/可运行,S=就寝,T=已跟踪/已停止,Z=僵停)
%CPUCPU 时间占用百分比
%MEM使用的物理内存百分比
TIME+使用的 CPU 时间总计(单元:1/100 秒)
COMMAND命令名/命令行
1.2.2.1、实行

当我运行I/O的时候,wa占用
dd if=/dev/zero of=/mnt/a.txt count=19 bs=100M


又恢复成

 1.2.2.2、top 命令全屏操纵界面快捷键

默认 3s 刷新一次,按 s 修改刷新时间按空格 :立即刷新。
P:按 CPU 排序
M:按内存排序
T:按时间排序
p: 进程 IP,查看某个进程状态
N 键根据启动时间举行排序
数字键 1:显示每个内核的 CPU 使用率
u/U:指定显示的用户
h:可以得到 top 步调的在线资助信息
q:键可以正常地退出 top 步调
注:若通过 top 排名工具发现某个进程 CPU 占用率非常高,需要终止该进程的运行,可以在 top 操纵界面中按 k 键,然后在列表上方将会出现“PID to signal/kill [default pid = 3180]:” 的提示信息,根据需要输入指定进程的 PID 号并按 Enter 键, 出现“Send pid 输入的能够ID  signal [15/sigterm]”的二次确认的提示信息,然后按Enter 键确认即可终止对应的进程。


 1.2.3、pgrep根据特定条件查询进程pid信息

   pgrep  -参数
  常用的参数


  • -l:选项可同时输出对应的进程名以及PID
  • -U:选项查询特定用户的进程
  • -t:选项查询在特定终端运行的进程 


1.2.4、pstree命令以树形结构列出进程信息

结合以下常用的参数使用:


  • -p:选项使用时可以同时列出对应的PID号
  • -u:选项可以列出对应的用户名
  • -a:选项可以列出完整的命令信息
实行如下的“pstree -aup”命令可以查看当前体系的进程树,包括各进程对应的PID 号、用户名、完整命令等信息。从输出结果中可以看出,systemd 进程确实是 Linux 操纵体系中所有进程的“始祖”。


二、控制进程

2.1、进程的启动方式

手工启动


  • 前台启动:用户输入命令,直接实行步调
  • 后台启动:在命令行尾参加"&"符号
例如,当使   用 cp 命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&” 符号将复制操纵放到后台运行,以便用户可以继承实行其他命令操纵。

输出信息中包括后:台任务序号【1】,pid号 35489
调度启动
在服务器维护工作中,经常需要实行一些比较费时而且较占用资源的任务(如数据备份),这些任务更得当在相对空闲的时候(如夜间)举行。这时就需要用户事先举行调度安排,指定任务运行的时间,当体系到达设定时间时会自动启动并完成指定的任务。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端。
进程的调度启动可以通过 at、crontab 命令举行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务。
2.2、进程的前后台调度

2.2.1、挂起当前的进程

当Linux操纵体系中的命令正在前台实行时(运行尚未结束),按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止实行),这种操纵在需要暂停当前进程并举行其他操纵时特别有用。例如,打包usr并且调入后台 ,可以按 Ctrl+Z 组合键将该下载任务调入后台并暂停实行
tar czvf  usr.tar.gz /usr

2.2.2、jobs命令查看处于后台的任务列表

常用的参数
-l:选项可以同时显示该进程对应的PID号
jobs -l  
查看处于后台的任务列表

2.2.3、fg、bg命令将后台的进程恢复运行

使用 bg(BackGround,后台)命令,可以将后台中暂停实行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继承在后台实行操纵;(注意就不能再停止了)
使用 fg 命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。
除非后台中的任务只有一个,否则 bg 和 fg 命令都需要指定后台进程的任务编号作为参数。

2.3、终止进程实行

当用户在前台实行某个进程时,可以按Ctrl+C组合键逼迫举行中断(如命令长时间没有响应的情况下)。
中断前台进程的运行后,体系将返回命令行提示符状态等候用户输入新的命令。
当按 Ctrl+C 组合键无法终止步调大概需要结束在其他终端或后台运行的进程时, 可以使用专用的进程终止工具 kill、killall 和 pkill。
2.3.1、使用 kill 命令终止进程

通过 kill 命令终止进程时,需要使用进程的 PID 号作为参数。无特定选项时,kill 命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合“-9”    选项强行终止进程。逼迫终止进程时可能会导致步调运行的部门数据丢失,因此不到不得已时不要轻易使用“-9”选项。(但是一般照旧会用)
-3柔和
例如,若vim 服务的 sshd 进程的 PID 号为 93333,则实行“kill 93333”命令后可以将进程 sshd 终止

 开启一个vim


查询这个pid 

杀死


终止 

2.3.2、使用 killall 命令终止进程

使用 killall 命令可以通过进程名称来终止进程,当需要结束体系中多个雷同名称的进程时,使用 killall 命令将更加方便,服从更高。killall 命令同样也有“-9”选项。例如,实行如下的“killall -9 vim”命令可将所有名为 vim 的进程都强行终止
挂起第 2 个 vim 测试进程
通过进程名终止多个进程


2.3.3、使用 pkill 命令终止进程

使用 pkill 命令可以根据进程的名称运行该进程的用户、进程地点的终端等多种属性终止特定的进程,大部门选项与 pgrep 命令根本类似,如“-U”(指定用户)、“-t”(指定终端) 等选项,使用起来非常方便。例如,若要终止由用户 yc666启动的进程(包括登录 Shell),可以实行以下操纵。

pgrep –l -U "yc666"    //确认目的进程相关信息56416 bash



pkill -9 -U "yc666"    //强行终止用户hackli 的进程



pgrep -l -U "yc666"    //确认目的进程已被终止


三、at一次性任务设置

一次性计划任务
在 Linux 操纵体系中,除了用户即时实行的命令操纵以外,还可以配置在指定的时间、指定的日期实行预先计划的体系管理任务(如定期备份、定期采集监测数据)。CentOS 体系中默认已安装了 at、cronie 软件包,通过 atd 和 crond 这两个体系服务实现一次性、周期性计划任务的功能,并分别通过 at、crontab 命令举行计划任务设置

使用at命令设置的计划任务只在指定的时间点实行一次,前提是对应的体系服务atd必须已经运行。需要注意的是,计划实行任务的时间、日期必须安排在当前体系的时候之后,   否则将无法正确设置计划任务。
设置一次性计划任务时,在 at 命令行中依次指定计划实行任务的时间、日期作为参数(若只指定时间则体现当天的该时间,若只指定日期则体现该日期的当前时间),确认后将进入带“at>”提示符的任务编辑界面,每行设置一条实行命令,可以依次设置多条语句,最后按 Ctrl+D 组合键提交任务。所设置的命令操纵将在计划的时间点被依次实行。
格式
   at  [HH:MM]  [yyyy-mm-dd]
任务设置完毕后按Ctrl+D 组合键提交
  假如错误,修改用ctrl+删除修改内容



 3.1、实行

以下操纵将设置一条计划任务,在当天的 21:30 自动关闭当前体系。

 
3.2、查询计划和删除计划

可以通过 atq 命令举行查询

 用atrm +任务号  删除

四、crontab周期性任务设置

crontab命令
按照预先设置的时间周期 (分钟,小时,天。.....)重复实行用户指定的命令操纵,属于周期性计划任务。
/etc/crontab 文件中设置的是维护 Linux 操纵体系所需的任务,Linux 操纵体系及相关步调在安装时可自动设置,不建议用户手动修改此文件。
该文件中包括设置 Shell 环境、可实行路径等变量的操纵,以及每小时、天天、每周、每月需要实行的任务目次。实行如下的“cat /etc/crontab”命令可以查看/etc/crontab 文件的具体内容。

 

4.1、管理crontab计划任务

   编辑计划任务
crontab -e【-u用户名】
查看计划任务
crontab -i【u用户名】
删除计划任务
crontab -r【-u用户名】
  crontab -u 用户名 #指定XX用户的cron服务
crontab -l #列出当前用户下的cron的具体内容
crontab -u zx -l #列出zx用户下的cron的具体内容
crontab -r #删除所有用户的cron内容,普通用户实行,只删除自己的cron内容
crontab -r -u zx #删除zx用户的cron内容
crontab -e #编辑cron服务 
4.1.1、-e编辑内容格式

50      3       2    1        *       run command
分钟 小时 日期 月份 星期    命令
分时日月周
4.2、时间数值的特殊体现方法



  • *体现该范围内的任意时间
  • 减号“-”:可以体现一个连续的时间范围,如“1-4”体现整数 1、2、3、4。
  • 逗号“,”:可以体现一个间隔的不连续范围,如“3, 4, 6, 8”。
  • 斜杠符号“/”:可以用来指定间隔频率,如在日期字段中的“*/3”体现每隔 3 天。
示例


4.3、实行

普通用户实行“crontab -e”命令时,可以设置自己的计划任务(需要注意命令的实行权限)。
例如,用户 yc666设置一条计划任务:
在每晚上的 18:36 将/etc/passwd 文件的内容复制到宿主目次中,生存为 pwd.txt 文件


因各条计划任务在实行时并不需要用户登录,所以任务配置纪录中的命令建议使用绝对路径,以避免因缺少实行路径而无法实行命令的情况。另外,在设置非每分都实行的任务时,    “分钟”字段也应该填写一个具体的时间数值,而不要保留为默认的“*”,否则将会在每分钟实行一次计划任务。

在root下可以-u查看其他人计划


 增补
crontab -e:编辑的是当前体系用户作为实行者的的定时任务
conrtab -l:查看当前用户的定时任务
/etc/cronatab:是体系级别,可以包罗所有用户的定时任务
其他的一些例子
例如,若要按固定的周期重复完成一些体系管理任务,任务内容如下:
①天天早上 7:50自动开启 sshd 服务,22:50 关闭 sshd 服务;
②每隔五天清空一cron        次 FTP 服务器公共目次/var/ftp/pub 中的数据;
③每周六的 7:30 重新启动体系中的 httpd 服务;
④每周一、周三、周五的下午 17:30,使用 tar 命令自动备份/etc/httpd 目次,则可由 root 用户通过 crontab 设置以下计划任务。
  1. 例如,若要按固定的周期重复完成一些系统管理任务,任务内容如下:①每天早上 7:50
  2. 自动开启 sshd 服务,22:50 关闭 sshd 服务;②每隔五天清空一cron                次 FTP 服务器公共目录
  3. /var/ftp/pub 中的数据;③每周六的 7:30 重新启动系统中的 httpd 服务;④每周一、周三、周五的下午 17:30,使用 tar 命令自动备份/etc/httpd 目录,则可由 root 用户通过 crontab 设置以下计划任务。
  4. [root@localhost ~]# crontab -e
  5. 50 7 * * * /usr/bin/systemctl start sshd.service
  6. 50 22 * * * /usr/bin/systemctl stop sshd.servic
  7. 0 0 */5 * * /usr/bin/rm -rf /var/ftp/pub/*
  8. 30 7 * * 6 /usr/bin/systemctl httpd restart
  9. 30 17 * * 1,3,5 /usr/bin/tar jcf httpdconf.tar.bz2 /etc/httpd/
  10. */2 * * * * ls -lh /home/*
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表