您的位置:首页 > 运维架构 > Linux

Linux学习笔记:进程管理和任务计划

2013-12-08 09:38 796 查看

一、进程管理

1.进程简介



    一个程序对应多个进程;一个进程对应一个程序。

--------------------------------------------------

2.进程状态的查看与控制



  查看进程状态

   w 查看个别用户的进程  eg: w userName

   list-info

    JCPU:

    PCPU:

    WAHT:

    from:

    IDLE: 用户空闲时间

    load average:

   ps -aux

-a: 显示所有用户的进程
-u:显示用户名和启动时间
-x:显示没有控制终端的内容

   ps -el

-e:显示所有进程,包括没有控制终端的进程
-l:以长格式显示进程

   list-info
PID:进程号
PPID:父进程的进程号
TTY:进程启动的终端
STAT:进程当前的状态
  S :休眠
  D :不可中断的休眠
  R :运行
  Z :僵死
  T :停止
NI:进程优先级
TIME:进程启动总时间
COMMAND:进程名称

  查看进程排序

   ps -aux --sort pid[PID/TIME/UID/PPID/TTY/STAT]

  查看进程筛选

   ps -aux|grep processName

  杀死或重新启动进程

    为什么要杀死进程:

     占资源;进程死了;执行时间长,没效果。。。

    命令:
    kill pid

    kill -9 pid

    kill -s 信号 pid

    kill -l 列出所有的信号

    killall 进程名(CMD)    杀死所有相关的进程

  改变进程的运行优先级(-20, 19)

    nice -n command &  指定程序运行优先级

    renice n pid  改变一个正在运行的程序的优先级

  实时查看进程状态

    top 默认5秒刷新一次

    top -d 1

    top -c 显示整个命令行,不仅是命令名

    top -d 1 -c 设置1秒刷新一次

    top -q 立刻更新所显示的信息

  进程的挂起和恢复

    正在运行,挂起可以 ctrl + z   

    如果开启时,可以在后边使用&

      command &

      command

      ctrl + c    ctrl + z

      jobs

      fg4

      bg4



二、任务计划

---------------------------------------------------

3.一次性安排进程任务



  at  安排作业,某个程序在某一时刻执行一次

    第一步:开启atd  service atd start

    第二步:添加一个任务

    格式:at time


eg: 在10:20的时候,执行一个命令,插入一行文字到某个文本里边

at 10:20

>/bin/cp -r /root/* /home/bruce
>/bin/echo "2222222222" > /home/bruce/1.txt

    注意:一定要使用命令的全路径

ctrl + d  完成

 time说明:

①绝对计时方法
midnight noon teatime
HH:MM [today]
HH:MM tomorrow
HH:mm 星期
HH:MM mm/dd/yyyy

②相对计时方法
now + n minutes
now + n hours
now + n day

    第三步:查看任务

at -l 查看  或者  atq查看

    第四步:删除一个任务

    

    at -d 任务号  或者   atrm 任务号

    第五步:使用命令文件的方式

    at -f 文件 时间点

    at < 文件  时间点

    

    第六步:at的执行结果和配置文件

/etc/at.allow
如果这个文件存在,那么只有在列在测文件中的用户才能使用at命令;
如果这个文件不存在,则查/etc/at.deny;

/etc/at.deny
如果这个文件存在,则在此文件中的列出的用户都不能使用at命令;

如果两个文件都不存在,则只有root用户可以使用at命令;

如果两个文件都存在,而且均为空,则所有用户都可以使用at命令。

  附件:

  batch  安排作业,某个程序在系统负载不重时执行一次

----------------------------------------------------

4.周期性安排进程任务



  crond

  ①service crond start 开启服务

   crond 进程搜索crontab文件并载入内存

   crontab文件即/var/spool/cron/目录下以用户名命名的文件

   crond进程启动以后,他将首先检查是否用户设置了crontab文件,如果没有,转入“休眠”状态,释放系统资源

    crond进程每分钟醒来一次,查看crontab文件,决定当前是否有需要执行的命令,执行结束后,然后输出都将作为邮件发送给crontab的所有者

  ②crontab -e 创建编辑crontab文件

     eg: */1 * * * * /bin/pc 

     任务包括两个内容:时间 + 操作

     a.时间

     minute : 一小时中的哪一分钟[ 0 - 59 ]

     hour : 一天中的哪一个小时[ 0 - 23 ]

     day-of-month: 一个月中的哪一天 [ 1 - 31 ]

     month-of-year: 一年中的那一个月 [ 1 - 12 ]

     day-of-week: 一周中的哪一天 [ 0 - 6 ]

     b.操作

     commands: 执行的命令, 命令要是用绝对路径

     这些项不能为空,必须填入

     如果用户不需要指定其中的几项, 那么可以使用通配符号“*”表示任何时间

     每个时间字段都可以指定多个值,用","间隔

       eg: 每天的1点和3点   * 1,3 * * * commands

     每个时间字段都可以指定范围,用"-"间隔

       eg: 每天的8点到10点  * 8-10 * * * commands

     每个时间字段都可以使用间隔,用/表示

       eg: 每隔一分钟  */1 * * * * commands

     用户必须具有运行所对应命令或程序的权限

   ③查看 crontab -l

   ④删除 crontab -r

   ⑤crontab的配置文件,限制哪些用户可以使用crontab命令,规则与at一致

/etc/cron.allow

/etc/cron.deny
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息