Linux-进程和计划任务管理

一 查看进程

1.1 程序和进程的关系

  • 程序
    保存在硬盘、光盘等介质中的可执行代码和数据
    静态保存的代码

  • 进程
    在CPU及内存中运行的程序代码
    动态执行的代码
    父、子进程(每个程序可以创建一个或多个进程)

1.2 查看进程信息ps

  • ps命令
    查看静态的进程统计信息
    a:显示当前终端下所有进程信息,包含其他用户进。
    u:使用以用户为主的格式输出进程信息
    x:显示当前用户在所有终端下单进程信息
    e:显示系统内的所有进程信息
    l :使用长格式显示进程信息
    f:使用完整的格式显示进程信息
[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  5.3  0.0  43400  3748 ?        Ss   09:33   0:01 /usr/lib/syste
root          2  0.0  0.0      0     0 ?        S    09:33   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    09:33   0:00 [ksoftirqd/0]
root          4  0.0  0.0      0     0 ?        S    09:33   0:00 [kworker/0:0]
root          5  0.0  0.0      0     0 ?        S<   09:33   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    09:33   0:00 [kworker/u256:
root          7  0.0  0.0      0     0 ?        S    09:33   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    09:33   0:00 [rcu_bh]
root          9  0.3  0.0      0     0 ?        S    09:33   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   09:33   0:00 [lru-add-drain
root         11  0.0  0.0      0     0 ?        S    09:33   0:00 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    09:33   0:00 [watchdog/1]
root         13  0.0  0.0      0     0 ?        S    09:33   0:00 [migration/1]
root         14  0.0  0.0      0     0 ?        S    09:33   0:00 [ksoftirqd/1]
root         15  0.0  0.0      0     0 ?        S    09:33   0:00 [kworker/1:0]
root         16  0.0  0.0      0     0 ?        S<   09:33   0:00 [kworker/1:0H]
root         17  0.0  0.0      0     0 ?        S    09:33   0:00 [watchdog/2]
root         18  0.1  0.0      0     0 ?        S    09:33   0:00 [migration/2]
root         19  0.0  0.0      0     0 ?        S    09:33   0:00 [ksoftirqd/2]
root         20  0.0  0.0      0     0 ?        S    09:33   0:00 [kworker/2:0]


[root@localhost ~]# ps  -elf
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  1  80   0 - 47716 ep_pol 09:33 ?        00:00:01 /us
1 S root          2      0  0  80   0 -     0 kthrea 09:33 ?        00:00:00 [kt
1 S root          3      2  0  80   0 -     0 smpboo 09:33 ?        00:00:00 [ks
1 S root          4      2  0  80   0 -     0 worker 09:33 ?        00:00:00 [kw
1 S root          5      2  0  60 -20 -     0 worker 09:33 ?        00:00:00 [kw
1 S root          6      2  0  80   0 -     0 worker 09:33 ?        00:00:00 [kw
1 S root          7      2  0 -40   - -     0 smpboo 09:33 ?        00:00:00 [mi
1 S root          8      2  0  80   0 -     0 rcu_gp 09:33 ?        00:00:00 [rc
1 S root          9      2  0  80   0 -     0 rcu_gp 09:33 ?        00:00:00 [rc
1 S root         10      2  0  60 -20 -     0 rescue 09:33 ?        00:00:00 [lr
5 S root         11      2  0 -40   - -     0 smpboo 09:33 ?        00:00:00 [wa
5 S root         12      2  0 -40   - -     0 smpboo 09:33 ?        00:00:00 [wa
1 S root         13      2  0 -40   - -     0 smpboo 09:33 ?        00:00:00 [mi
1 S root         14      2  0  80   0 -     0 smpboo 09:33 ?        00:00:00 [ks

1.3 查看进程信息top

  • top命令
    查看动态的进程排名信息
[root@localhost ~]# top
top - 09:35:24 up 1 min,  1 user,  load average: 0.25, 0.21, 0.09
Tasks: 218 total,   1 running, 217 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3861520 total,  3066572 free,   596060 used,   198888 buff/cache
KiB Swap: 16777212 total, 16777212 free,        0 used.  3022456 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   
  9787 daemon    20   0  506352   7564    804 S   0.3  0.2   0:00.04 httpd     
     1 root      20   0  190864   3800   2564 S   0.0  0.1   0:01.18 systemd   
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd  
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd+
     4 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/0+
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0+
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/u+
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration+
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh    
     9 root      20   0       0      0      0 S   0.0  0.0   0:00.10 rcu_sched 
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-d+
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/0
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/1
    13 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration+
    14 root      20   0       0      0      0 S   0.0  0.0   0:00.01 ksoftirqd+
    15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kworker/1+
    16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1+

1.4 查看进程信息pgrep

  • pgrep 命令
    根据特定条件查询进程PID信息
    -l :显示进程名
    -U:指定特定用户
    -t :指定终端
pgrep -l "log"
----------------------------------------------------------
pgrep -l -U teacher -t tty1

1.5 查看进程信息pstree

  • pstree 命令
    以树形结构列出进程信息
    -a :显示完整信息
    u:列出对应用户名
    p:列出对应PID号
pstree -aup
-------------------------------------
pstree -ap teacher

二 控制进程

2.1 进程的启动方式

  • 手工方式
    前台启动:用户输入命令,直接执行程序
    后台启动:在命令行尾加入“&”符号
cp /dev/cdrom mycd.iso &
  • 调度启动
    使用at命令,设置一次性计划任务
    使用crontab命令,设置周期性计划任务

2.2 进程的前后台调度

  • ctrl+Z组合键
    将当前进程挂起,即调入后台并停止执行
  • jobs 命令
    查看处于后台的任务列表
  • fg命令
    将后台进程恢复到前台运行,可指定任务序号
jobs
-------------------------
fg 1

2.3 终止进程的运行

  • ctrl+C组合键
    中断正在执行的命令
    ■ kill、killall命令
    kill用户终止指定PID号的进程
    killall用户终止指定名称的所有进程
    -9选项用户强制终止

  • pkill命令
    根据特定条件终止相应的进程
    常用命令选项
    -U 、-t

pgrep -l -U “hackli”
pkill -9 -U "hackli"
pgrep -l -U "hackli"

三 计划任务管理

3.1 计划任务管理at命令

  • at命令
    一次性计划任务
at [HH:MM] [yyyy-mm-dd]

3.2 计划任务管理crontab命令

  • crontab命令
    按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作
    属于周期性计划任务
    主要设置文件

  • 全局配置文件,位于文件:/etc/crontab

  • 系统默认的设置,位于目录:/etc/cron.*/

  • 用户定义的设置。位于文件:/var/spool/cron/用户名

  • 管理crontab计划任务

    1. 编辑计划任务
      crontab -e [-u 用户名]
    2. 查看计划任务
      crontab -l [-u 用户名]
    3. 删除计划任务
      crontab -r [-u 用户名]

3.3 crontab任务配置的格式

在这里插入图片描述

字段说明
分钟取值为0到59之间的任意整数
小时取值为0到23之间的任意整数
日期取值为1到31之间的任意整数
月份取值为1到12之间的任意整数
星期取值为0到7之间的任意整数,0或7代表星期日
命令要执行的命令或程序脚本
  • 时间数值的特殊表示方法
    ”*“表示该范围内的任意时间
    ”,“表示间隔的多个不连续时间点、
    ”-“表示一个连续的时间范围
    ”/“指定间隔的时间频率

  • 应用示例
    *0 17 * * 1-5 ##周一到周五每天17:00
    30 8 * * 1,3.5 ##每周一、周三、五的8点30分
    0 8-18/2 * * * ##8点到18点之间每2小时
    0 * /3 * * ##每三天

四 附带实验

4.1 at命令一次性计划任务实验

[root@localhost ~]# date               #############查看时间
20201030日 星期五 14:33:52 CST
[root@localhost ~]# at 14:50 2020-10-30             ##############设置一次性的执行时间
at> pgrep -U root |wc -l >/opt/root.txt<EOT>    #########查看指定用户命令有多少行,查看有多少行在把重定向到/opt/root.txt里,键盘ctrl+d ctrl+d
job 7 at Mon Jul 20 14:50:00 2020
[root@localhost ~]# atq             ###############33查看刚刚的计划任务还有多久执行
7    Mon Jul 20 14:50:00 2020 a root

在当天的21:30时自动关闭当前系统
在这里插入图片描述

4.2 crontab任务实验

实验要求:每两分钟向阿里云时间同步一次,然后重定向到/var/log/natdate.log文件里

crontab -e

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值