进程管理及计划任务

进程的概念:

  • 内核的功用:进程管理,文件系统,网络功能,内存管理, 驱动程序,等
  • process:运行中的程序的一个副本,是被载入内存的一个指令集合
  • 进程ID(process ID,PID)号码被用来标记各个进程,UID, GID和SELinux语境决定对文件系统的存取和访问权限.通常从执行进程的用户来继承
  • 在Centos6以前第一个进程init
  • Centos7是systemd   为父子关系
  • 进程:都是由其父进程创建,使用cow机制,(写时复制)
  • 在没有写之前父子功用同一个空间,之后子进程单独指向其复制空间
  • 进程优先级
  • 系统优先级:数字越小优先级越高 (0-99)
  • 实时(realtime)优先级:值越大优先级越高(99-0)
  • nice优先级: 值越小优先级越高 (-20-19) 相当于系统99范围内
  • 进程相关概念
  • 进程内存:
  • page Frame:页框,yong存储页面数据,存储page 4k
  • LRU:Least Recently Used 近期最少使用算法,释放内存
  • 进程状态
  • Linux内核:抢占式多任务
  • 进程类型: 
  • 守护进程:daemon,相当于服务进程,在系统引导过程中启动的进程,和终端无关进程
  • 前台进程:跟终端相关,通过终端启动的进程 占用窗口
  • 前后台两者可以转换
  • 进程状态
  • 运行态:running
  • 就绪态:ready
  • 睡眠态:  可中断:intrruptable
  • 不可中断:uninterruptable
  • 停止态: stopped,暂停与内存,但不会被调用,除非手动启动
  • 僵死态:zombie:结束进程,父进程结束前,子进程不关闭(重启解决)

进程管理工具

  • 进程分类:
  • cpu密集型,非交互
  • IO密集型,交互
  • Linux系统状态的查看及管理工具:
  • pstree ,  ps , pidof, pgrep , top , htop, glance, pamap, vmstat, dstat,
  • kill, pkill, job, bg, fg, nphup
  • Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中
  • pstree命令:
  • 列举进程ps
  • 适用于ps在查看进程信息
  • ps [OPRION]
  • 支持三种选项:
  • UNIX选项 -A -e
  • BSD选项  A e
  • GNU选项 --help
  • 选项:
  • a :查看所有终端的进程
  • x:显示守护进程
  • u:显示进程所属者信息
  • f :显示进程的父进程
  • k|--sort 属性 对属性排序
  • o  属性...选项显示定制的信息
  • echo $$显示当前进程
  • echo $PPID显示父进程

进程管理工具

  • VSZ:Virtual menmory size,虚拟内存集,线性内存
  • RSS:ReSident Size, 常驻内存集
  • STAT:进程状态
  • R:running
  • S:interruptable sleeping
  • D:uninterruptable sleeping
  • T: sropped
  • Z:zombiie
  • +:前台进程
  • l:多线程进程
  • L:内存分页并带锁
  • N:低优先级进程
  • <:高优先级进程
  • s:session leader ,会话(子进程)发起者
  • 常用组合: -ef
  • -e:显示所有进程
  • -f:显示完整格式程序信息
  • -eFH:
  • -F:显示更完整格式的进程信息
  • -H:以进程层次格式显示进程相关信息
  • 自定义:
  • ps  axo pid,comm,euid,ruid,tty,psr...
  • ps  axo pid,comm,euid,ruid,tty,rtprio,pri ..
  • ni:nice值
  • pri:priority 优先级
  • psr:processor  CPU编号
  • rtprio: 实时有优先级
  • ps  axo pid,comm,ni,psr,tty,rtprio,pri ..
  • 搜索进程
  • 但与定义的模式:pgrep
  • -u uid: 生效者
  • -U:真正执行命令者
  • -l :显示进程的名称
  • -t: 查看指定终端运行的进程
  • -P:显示指定进程的进程
  • -a:显示完整格式的进程名称
  • 安确切的程序名称: /sbin/pidof
  • pidof bash
  • uptime:显示当前时间,系统已启动的时间,当前上线人数,系统平均负载(1,5, 10分钟的平均负载,一般不会超过1)
  • 系统平均负载:
  • 只在特定时间间隔内运行队列中的平均进程数
  • 通常每个cpu内核到的当前活动进程数不大于3,那么系统的性能良好.如果每个cpu内核的任务数大于5,那么主机的性能有严重问题
  • 如果Linux主机是1个双核cpu,当Load Average为6的时候说明机器已经被充分使用
  • top:实时跟踪当前进程状态相当于windows任务管理器

内存工具

  • iostat:统计cpu和设备Io信息
  • iostat 1 10
  • pmap命令:进程对应的内存映射
  • -x :显示详细格式的信息
  • pmap 1
  • 另一种实现:
  • cat /proc/PID/maps
  • 系统监控工具
  • dstat命令:系统资源统计,代替vmstat,iostat
  • -c:显示cpu相关信息
  • -d:显示disk相关信息
  • -g:显示page相关统计数据
  • -m:显示memory相关统计数据
  • -n:显示network相关统计数据
  • -p:显示process相关统计数据
  • -r:显示io请求相关的统计数据
  • -s:显示seapped相关的统计数据
  • 进程管理工具

  • kill命令:
  • 向系统发送控制进程信号,以实现对进程管理,每个信号对应一个数字,
  • 信号名称已SIG开头,不区分大小写
  • 显示当前系统可用信号:kill -l, trap -l
  • 常用信号: man 7 signal
  • 1 :无需关闭进程而让其重读配置文件
  • 2 :终止正在运行的进程;相当于ctrl +c
  • 3:相当于ctrl+\
  • 9:强制杀死正在运行的进程
  • 15:终止正在运行的进程
  • 18:继续运行
  • 19:后台休眠
  • 指定信号的方法:
  • 信号的数字标识:1 ,2 ,9
  • 信号完整名称: SIGHUP
  • 信号的简写名称:HUP
  • kill all :杀死全部
  • 示例:
  • kill -1 PIDOF
  • kill  PROCESSNAME
  • 按PID :kill [-SIGNAL] pid ...
  • kill -n SIGNAL pid
  • 按名称:killall [-SIGNAL] comm
  • 按模式:pkill [option] pattern
  • -SIGNAL
  • -u uid:
  • pkill -9 -u user 强制杀掉指定用户所有进程
  • -u uid: 生效者
  • -U:真正执行命令者
  • -l :显示进程的名称
  • -t: 查看指定终端运行的进程
  • -P:显示指定进程的进程
  • -a:显示完整格式的进程名称
  • 安确切的程序名称: /sbin/pidof
  • pidof显示进程编号
  • process 进程
  • thread  线程
  • 在进程到的眼里他拥有除系统以外所有内存
  • 线程可共享资源(l表示有线程)

Linux的作业控制

  • 前台作业:通过终端启动,且启动后一直占据终端;
  • 后台作业:可通过终端启动,但启动后即转如后台运行
  • 上作业运行与后台
  • 1 运行中作业: Ctrl+z :送往后台,作业会转为停止状态
  • 尚未启动的作业:#COMMAND&
  • 作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业.
  • 如果希望送往后台,剥离与终端的关系
  • # nohup COMMAND &  # screen;COMMAND
  • 查看当前终端素有作业:
  • jobs
  • 作业控制:
  • fg :把指定的后台作业调会前台
  • bg:让送往后台的作业在后台继续运行
  • kill 终止指定的作业

linux任务计划,周期性任务执行

  • 未来的某时间点执行一次某任务:at.batch
  • batch:系统自行选择空闲时间去执行此处指定的作业任务
  • 周期性运行某任务:crontab
  • 执行结果:会通过邮件发送给用户
  • 首先确定at命令是否处于启动状态
  • chkconfig --list atd 查看其那些模式下处于启动状态
  • service  atd status 查看其服务启动状态

at命令默认交互式

  • at [option]...TIME
  • TIME:
  • HH:MM[YYYY-mm-dd]
  • noon,正午时间 , midnight午夜时间,teatime,指下午4点
  • tomorrow  +具体时间
  • 相对指定 now+#
  • UNIT:minutes hours,days,
  • at now+1min xxxx    一分钟以后运行xxxx
  •  示例:  
  •  [[email protected] ~]# at noon
  •      at> echo o<EOT>
  •      job 8 at 2017-05-13 12:00
  • [[email protected] ~]# at now +10days
  •      at> echo p
  •      at> <EOT>
  •      job 9 at 2017-05-22 14:35
  • 编辑额按成后ctrl +d 提交
  • [[email protected] ~]# at 13:20
  •     at> touch op
  •     at> <EOT>
  • at的作业有队例,用单个字母表示,默认都是用队列,
  • -V: 显示版本信息
  • -l 查看 作业队列,相当于atq
  •     [[email protected] ~]# at -l
  •          3   2017-05-13 13:20 a root
  •          如果任务一执行则会消失,任务执行结果信息会通过邮件查看
  • -f:/PATH/FROM/SOMEFIE:从指定文件中读取作业,而非交互输入
  • cat filename | at   HH:MM
  • [[email protected] ~]# echo echo  dsd > job
  •  [[email protected] ~]# at -f job 13:30
  •          job 5 at 2017-05-13 13:30
  •          [[email protected] ~]# at -l
  •          5    2017-05-13 13:30 a root
  •          4    2017-05-12 15:30 a root
  • [[email protected] ~]# cat job |at 15:38
  •          job 6 at 2017-05-12 15:38
  • -m:当任务被完成后强制性给用户发邮件
  • [[email protected] ~]# at -m 22:33
  •          at> touch oo
  • -d:指明删除作业,相当于atrm
  • [[email protected] ~]# at -l
  •          3    2017-05-13 13:20 a root
  •          [[email protected] ~]# at -d 3
  •          [[email protected] ~]# at -l
  • -c:查看具体作业任务
  •   [[email protected] ~]# cat job |at 15:38
  •           job 7 at 2017-05-12 15:38
  •           [[email protected] ~]# at -c 7
  • -q:指明队列;
  • 如果定义的任务时间相同那么将会同事执行;
  • 注意作业执行结果是已邮件发送给提交作业的用户,不会打印到终端.
  • 如果所设定的任务已过当前时间则会在下一次这个时间点执行
  • 重启不会失效,因为其任务存放于"/var/spool/at"文件里.
  • /etc/at.{allow,deny}控制用户是否能执行at任务
  • 白名单at.allow :优先级高,由此文件,deny无效,只有此此文件中的用户可使用at
  • 黑名单at.deny  优限级低,此文件中的用户拒绝,不在此文件允许
  • 如果都没有全都拒绝不包括root用

    周期性任务计划:cron

  • 服务程序:
  • cronie:主程序包  ,提供了crond守护进程及相关辅助工具;
  • 确保crond守护进程(daemon)处于运行状态
  • centos7  systmectl status crond.service  查看
  • centos6  service crond status
  • 向crond提交作业的方式不同于at, 他需要使用专用配置文件, 此文件固定格式,不建议使用文本编辑器直接编辑此文件;要是用crontab的命令;
  • cron任务分两类:
  • 系统cron任务:主要用于实现系统自身的维护:
  • 手动编辑: /etc/crontab文件
  • 用户cron任务:
  • 命令:  crontab
  • 系统cron配置格式:
  • 注意:
  • 1 . 每一行定义一个周期性任务:
  • *****:定义周期性时间任务
  • username:运行任务的用户身份
  • comanmd to be executed: 任务
  • 2 .  此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者自定义PATH环境变量;
  • 示例:
  • 因为 cron 不支持特殊符号所以复杂行的任务可将其写入脚本再加以引用
  •   cp -a /etc/ /app/etcbak-`date +%s`
  • 表示每月,每周,每天,每小时,每分钟 都备份指定任务
  • 用户cron的配置格式: /var/spool/cron/USERNAME
  • 注意:
  • 1 . 每行定义一个corn任务,
  • 2 .  此处的环境变量不同于用户登录后获得的环境,因此,建议命令使用绝对路径,或者指定以PATH 环境变量;
  • 3 . 邮件发送给当前用户:
  • 管理临时文件:

  • centos6使用/etc/cron.daiy/tmpwatch定时清除临时文件
  • centons7使用systemd-tmpfiles-setup服务实现
  • /var/log/cron  计划任务日志文件
  • 时间表示法:
  • 1 . 特定值:
  • 给定时间点有效取值范围内的值;
  • 注意:day of week 和dayof moth一般不同时使用;
  • 2 .  *
  • 给定时间上有效取值范围内的所有值;表示"每..."
  • 3 .  离散取值:
  • 在时间点上使用逗号分隔的多个值;
  • #,#,#
  • 4 . 连续取值:
  • 在时间点上使用-连接开头和结束
  • #-#
  • 5,  在指定时间点上,定义步长;/#
  • /#:#即步长;
  • */2:每两分钟
  • 注意:指定的时间不能被步长整除时,其意义将不复存在;
  • 最小时间单位为分钟, 想完成"秒级"任务,得需要额外借助其他机制;
  • 定义成每分钟任务;而在利用脚本实现每分钟之内循环执行的次数
  • 示例:
  • 1 . 3 * * * :每小时执行一次; 每小时第3分钟;
  • 2 . 34* * 5;每周五的4点3分; 每周执行一次
  • 3 . 567* *: 每月执行一次:每月的7号的6点5分;
  • 4 . 78910*:每年执行一次:每年的10月9号8点7分;
  • 5 . 98**3,7:每周三和周日; 8点9分
  • 6 . 08,20**3,7: 每周日和周三 :8点和20点
  • 7 . 09-18**1-5: 工作时间内的每小时;周一到周五的白天的9-18点
  • 8 . */5****;每5分钟执行一次某任务;

crontab命令

  • crontab[-u user]]-l  | -e] [-i][-s]
  • -e :编辑任务:
  • crontab -l 列出所有任务
  • -r  :移除所有任务;即删除/var/spool/cron/USERNAME文件;
  • -i :在使用-r选项移除所有任务时提示用户确认;
  • -u:user:root用户可为指定用户管理cron任务;
  •        crontab -e -u  user:  ROOT指定用户任务
  • 用户自己也可以创建任务因为其拥有SUID权限
  • [[email protected] ~]# ll /usr/bin/crontab
  •  -rwsr-xr-x. 1 root root 51784 Nov 10  2015 /usr/bin/crontab
  • crontab -l  查看自己的计划任务
  • crontab -r 删除自己所有任务
  • crontab -r -u user 删除指定任务
  • crontab  -r -u user -i 交互式指定删除
  • 如果误删可以在 /var/spool/cron 日志里
  • 注意:运行结果以邮件通知给当前用户; 如果拒绝接受邮件;
  • 1 COMMAND > /dev/null
  • 2COMMAND  &>/dev/null
  • 注意:
  • 定义 COMMAND时,如果命令需要用到%,需要对其转义;但防止与但因号中的%不用转义亦可;
  • 如果某任务在指定的时间因关机未能执行,下次开机会不会自动执行?
  • 不会
  • 如果期望某时间故未能按时执行,下次开机后无论是否到了相应时间点都要执行一次,可使用anacron实现;
  • 练习:
  • 1 . 每12小时备份一次/etc目录至/backups目录中,保存文件名称格式为"etc-yyyy-mm-dd-hh"
  • crontab  -e  0 */12 * * * cp -a /etc/ /backups/etc-`date +%F` /
  • 2 . 每周2, 4 ,7备份/var/log/secure文件至/logs目录中,文件格式为"secure-yyyymmdd";
  • crontab -e * * 2,4,7 * * cp -a /var/log/secure  /logs/secure `date +%F`
  • 3 , 每两小时取出当前系统/proc/meminfo文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中;
  •            crontab -e  0 */2 * * * grep -E ‘^(S|M)‘ /proc/meminfo >> /tmp/meminfo.txt
时间: 2024-08-06 12:38:05

进程管理及计划任务的相关文章

进程管理和计划任务

进程管理和计划任务 一.进程的概念: 总结:程序是保存在硬盘中的可执行代码或数据的静态集合:进程是cpu及内存中处于动态执行状态的计算机程序:进程由程序运行后产生,需要消耗cpu和内存,分为父子进程,子进程向父进程申请或提交: 线程:包含在进程中的一个实体,与所在的进程共用计算机资源,(单线程(串行).多线程(并行)): 二.进程的管理:增(启动).删(杀死或关闭).查(显示进程) 查:查找进程 ps/top/pgrep/pstree1.语法:ps aux ##静态查看进程RSS:物理内存,不包

38.进程管理与计划任务---PS、Top、Crontab

控制进程管理的命令有: 命令 选项 描述 示例 ps a:显示当前终端的进程 u:以用户为主的格式显示 x:显示当前用户所有进程 -e:显示系统内所有进程信息 -i:以长格式显示 -f:使用完整格式显示 静态查看进程 ps aux ps -eif top 打开进程管理器 top pgrep -l:显示进程名 -P:显示父进程 -g:显示进程组 -t:指定开启进程的终端 -u:指定进程的有效用户ID 查询服务对应进程信息 pgrep http pstree -p:列出对应的PID号 -u:列出对应

9.8_Linux进程管理和计划任务

进程管理篇 进程概念 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程 UID.GID.和SELinux语境决定对文件系统的存取和访问权限, 通常从执行进程的用户来继承 存在生命周期 task struct:Linux内核存储进程信息的数据结构格式 task list:多个任务的的task struct组成的链表 进程创建: init:第一

linux进程管理及计划任务

什么是进程? 在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置. 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在. 进程(process):程序被触发后,执行者的权限与属性.程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),可以说,进程就是一个正在运行中的程序. 进程I

Linux的进程管理和计划任务

系统引导是操作系统运行的开始,在用户能够正常登录到系统之前,Linux的引导过程完了一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备. Linux操作系统的引导流程包括以下阶段:开机自检.MBR引导.GRUB菜单.加载Linux内核.INIT进程初始化 (一) init进程负责完成一系列的初始化过程 读取配置文件"/etc/inittab" 根据配置内容执行脚本文件"/etc/rc.d/rc.sysinit" 通过"/etc/rc.d/r

Linux进程管理与计划任务

一.进程 1.进程概述 应用程序(软件):由开发人员使用语言编写:实现用户具体需求 进程:运行软件时产生,用于拿取使用硬件资源 子进程:由单个父进程产生,当父进程结束时,该父进程的子进程全部结束 线程:由进程产生,每个线程各自管理不同的资源内容,合理分配.管理资源 ※软件使用过程:开发人员编写→使用软件→产生进程→产生线程→使用硬件资源 2.查看进程 (1)pstree [选项] //以树形结构显示当前系统进程情况 选项 -a:显示当前系统所有进程 -p:显示每个进程对应的PID(进程编号) (

Linux基础知识--进程管理与计划任务

Linux启动流程: 开机自检BIOS是检测硬件以及各个设备是否准备好 MBR引导是看系统放在哪个位置,进行加载:引导分区,里面有多个系统,看需要启动哪个系统 GRUP菜单,进行一些选项,比如说看启动哪个系统 INIT进程: 由Linux内核加载运行/sbin/init程序 是系统的第一个进程,是所有进程的祖宗,PID(进程标记)号永远为1 配置文件/etc/inittab Linux系统运行级别(runlevels) 有7个级别, 0关机 1单用户模式 2字符界面的多用户界面(不支持网络) 3

第九天 进程管理&amp;任务计划

查看系统进程命令: 1.实用命令  ps -ef 查看所有后台进程 一般与grep同时使用筛选进程 2.Ps -fu root 查看所有root进程 PID 进程号 PPID父进程号  TTY进程相关终端 2.top命令持续监控进程 物理内存够不够看Swap:交换空间大小 在Top命令中按M 或 P 可以查看占用内存和cup最多的进程 Pstree查看进程关系 pstree 也可以加某一父进程号   jobs查看后台作业 杀死进程:   kill 一般使用Kill 加进程号 Kill -l 显示

linux基础学习第十八天之进程管理和任务计划

内容: 进程相关概念(用户空间.内核空间,进程.线程)   进程及系统相关工具(ps.top.pgrep.pidof.kill)   调整nice值(nice.renice)   作业管理(jobs.fg.bg.kill,&)   计划任务(at.crontab) 一.进程相关概念 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 内核空间和用户空间关系: 对计算机来说,其实只有CPU和内存,其中在某一时刻内存逻辑上分为两部分(linux系统):用户空间和内核空间,每一个