进程和计划任务任务管理

孤人 提交于 2019-11-26 15:52:27

 进程和计划任务任务管理

 

1、程序和进程的关系
(1)程序

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

(2)进程

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

 2、静态查看进程信息

[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.3 56640 6672 ? Ss 00:22 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root 2 0.0 0.0 0 0 ? S 00:22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 00:22 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 00:22 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 00:22 0:00 [migration/0].

(1)

  • USER:启动该进程的用户账号的名称。
  • PID:该进程在系统中的PID号,在当前系统中是唯一的。
  • %CPU: CPU占用的百分比。
  • %MEM:内存占用的百分比。
  • VSZ:占用虚拟内存swap空间的大小。
  • RSS:占用常驻内存物理内存的大小。
  • TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。
  • STAT:显示了进程当前的状态:D:不可中断睡眠、S:可中断的睡眠、R:就绪或运行状态、T:中止状态、Z: 僵死状态、<:高优先级进程、N:低优先级进程、+:前台进程组中的进程、|:多线程的进程、s:会话进程的首进程
  • START:启动该进程的时间。
  • TIME:该进程占用的CPU时间。
  • COMMAND:启动该进程的命令的名称。

(2)stat状态

  • S:不可中断睡眠
  • R:可中断睡眠
  • Z:就绪或运行状态
  • <:高级有限进程
  • N:低级优先进程
  • +:前台进程组中的进程
  • T:中止状态
  • Z:僵死状态

3、动态查看进程

top - 00:51:38 up 28 min, 1 user, load average: 0.00, 0.01, 0.03
Tasks: 399 total, 2 running, 397 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2035356 total, 1760020 free, 134140 used, 141196 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1751724 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
722 root 20 0 0 0 0 S 0.3 0.0 0:00.10 xfsaild/dm-0
1 root 20 0 56640 6672 3888 S 0.0 0.3 0:01.31 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0

  • top - 16:58:24 【当前系统时间】
  • 1:54 【系统已经运行 1 小时 54 分钟】
  • 2 users 【当前登录 2 个用户】
  • load average:0.00,0.00,0.00 【系统平均负载:1 分钟的,5 分钟的,15 分钟的】
  • Tasks:108 total 【任务:108 个总进程】
  • 1 running 【1 个进程正在运行】
  • 107 sleeping 【107 个进程睡眠】
  • 0 stoppd 【0 个进程停止】
  • 0 zombie 【0 个僵尸进程(冻结进程)】
  • Cpu(s): 0.0%us 【用户控件占用 CPU 百分比】
  • 0.0%sy 【内核空间占用 CPU 百分比】
  • 0.0%ni 【用户进程控件内改变过优先级的进程占用 CPU 百分比】
  • 100.0% 【空闲 CPU 百分比】
  • 0.0%wa 【等待输入输出的 CPU 时间百分比】
  • 0.0% hi 【】
  • 0.0%si 【】
  • Men: 1012352k total 【物理内存总量 1012352k】
  • 465816k used 【使用了 465816k 的物理内存】
  • 546536k free 【空闲 546536k 的物理内存】
  • 61064k buffe 【61064k 用作内核缓存】
  • Swap: 2031608k total 【交换分区总量 2031608k】
  • 0k used 【没有使用交换分区】
  • 2031608k free 【空闲的交换分区总量 2031608k】
  • 267580k cache 【缓冲的交换分区总量 267580k】
  • PID:进程号
  • USER:进程所有者的用户名
  • PR:优先级
  • NI:nice 值。负值表示高优先级,正值表示低优先级
  • VIRT:进程使用的虚拟内存总量,单位 kb
  • RES:进程使用的、未被换出的物理内存大小,单位 kb
  • SHR:共享内存大小,单位 kb
  • S:进程状态
  • %CPU:上次更新到现在的 CPU 时间占用百分比
  • %MEM:进程使用的物理内存百分比
  • TIME+:进程使用的 CPU 时间总计,单位 1/100 秒
  • COMMAND:命令

4、进程的启动方式

(1)手工启动:

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动:在命令行尾加入“&”符号

(2)进程的前后台调度

  • Ctrl+Z 将当前进程挂起,即调入后台并停止执行
  • jobs 命令 查看处于后台的任务列表,加-l 同时显示 PID 号
  • fg 命令 将后台进程恢复到前台运行,可指定任务程序号
  • bg 命令 将后台暂停的进程调至后台运行

(4)终止进程的运行

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

5、调度启动

(1)使用 at 命令,设置一次性任务计划

  • 服务脚本:/etc/init.d/atd
  • 设置格式:at [HH:MM] [yyyy-mm-dd] 设置当天的任务计划可不加日期
  • 基本操作:
    • Ctrl+D 保存退出
    • atq 查询现有的一次性任务计划
    • atrm [任务序号] 删除第几项任务

(2)使用 crontab 命令,设置周期性计划任务

    • 脚本名称:/etc/init.d/crond
    • 主要配置文件:
  • 全局配置文件:/etc/crontab
  • 管理 cron 计划任务
    • 编辑:crontab -e [-u 用户名]
    • 查看:crontab -l [-u 用户名]
    • 删除:crontab -r [-u 用户名]
  • 时间数值的特殊表示方法
    • * 表示该范围内的任意时间
    • , 表示间隔的多个不连续时间点
    • - 表示一个连续的时间范围
    • / 指定间隔的时间频率

1、程序和进程的关系
(1)程序

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

(2)进程

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

 2、静态查看进程信息

[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.3 56640 6672 ? Ss 00:22 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root 2 0.0 0.0 0 0 ? S 00:22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 00:22 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 00:22 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 00:22 0:00 [migration/0].

(1)

  • USER:启动该进程的用户账号的名称。
  • PID:该进程在系统中的PID号,在当前系统中是唯一的。
  • %CPU: CPU占用的百分比。
  • %MEM:内存占用的百分比。
  • VSZ:占用虚拟内存swap空间的大小。
  • RSS:占用常驻内存物理内存的大小。
  • TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。
  • STAT:显示了进程当前的状态:D:不可中断睡眠、S:可中断的睡眠、R:就绪或运行状态、T:中止状态、Z: 僵死状态、<:高优先级进程、N:低优先级进程、+:前台进程组中的进程、|:多线程的进程、s:会话进程的首进程
  • START:启动该进程的时间。
  • TIME:该进程占用的CPU时间。
  • COMMAND:启动该进程的命令的名称。

(2)stat状态

  • S:不可中断睡眠
  • R:可中断睡眠
  • Z:就绪或运行状态
  • <:高级有限进程
  • N:低级优先进程
  • +:前台进程组中的进程
  • T:中止状态
  • Z:僵死状态

3、动态查看进程

top - 00:51:38 up 28 min, 1 user, load average: 0.00, 0.01, 0.03
Tasks: 399 total, 2 running, 397 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2035356 total, 1760020 free, 134140 used, 141196 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 1751724 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
722 root 20 0 0 0 0 S 0.3 0.0 0:00.10 xfsaild/dm-0
1 root 20 0 56640 6672 3888 S 0.0 0.3 0:01.31 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0

  • top - 16:58:24 【当前系统时间】
  • 1:54 【系统已经运行 1 小时 54 分钟】
  • 2 users 【当前登录 2 个用户】
  • load average:0.00,0.00,0.00 【系统平均负载:1 分钟的,5 分钟的,15 分钟的】
  • Tasks:108 total 【任务:108 个总进程】
  • 1 running 【1 个进程正在运行】
  • 107 sleeping 【107 个进程睡眠】
  • 0 stoppd 【0 个进程停止】
  • 0 zombie 【0 个僵尸进程(冻结进程)】
  • Cpu(s): 0.0%us 【用户控件占用 CPU 百分比】
  • 0.0%sy 【内核空间占用 CPU 百分比】
  • 0.0%ni 【用户进程控件内改变过优先级的进程占用 CPU 百分比】
  • 100.0% 【空闲 CPU 百分比】
  • 0.0%wa 【等待输入输出的 CPU 时间百分比】
  • 0.0% hi 【】
  • 0.0%si 【】
  • Men: 1012352k total 【物理内存总量 1012352k】
  • 465816k used 【使用了 465816k 的物理内存】
  • 546536k free 【空闲 546536k 的物理内存】
  • 61064k buffe 【61064k 用作内核缓存】
  • Swap: 2031608k total 【交换分区总量 2031608k】
  • 0k used 【没有使用交换分区】
  • 2031608k free 【空闲的交换分区总量 2031608k】
  • 267580k cache 【缓冲的交换分区总量 267580k】
  • PID:进程号
  • USER:进程所有者的用户名
  • PR:优先级
  • NI:nice 值。负值表示高优先级,正值表示低优先级
  • VIRT:进程使用的虚拟内存总量,单位 kb
  • RES:进程使用的、未被换出的物理内存大小,单位 kb
  • SHR:共享内存大小,单位 kb
  • S:进程状态
  • %CPU:上次更新到现在的 CPU 时间占用百分比
  • %MEM:进程使用的物理内存百分比
  • TIME+:进程使用的 CPU 时间总计,单位 1/100 秒
  • COMMAND:命令

4、进程的启动方式

(1)手工启动:

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动:在命令行尾加入“&”符号

(2)进程的前后台调度

  • Ctrl+Z 将当前进程挂起,即调入后台并停止执行
  • jobs 命令 查看处于后台的任务列表,加-l 同时显示 PID 号
  • fg 命令 将后台进程恢复到前台运行,可指定任务程序号
  • bg 命令 将后台暂停的进程调至后台运行

(4)终止进程的运行

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

5、调度启动

(1)使用 at 命令,设置一次性任务计划

  • 服务脚本:/etc/init.d/atd
  • 设置格式:at [HH:MM] [yyyy-mm-dd] 设置当天的任务计划可不加日期
  • 基本操作:
    • Ctrl+D 保存退出
    • atq 查询现有的一次性任务计划
    • atrm [任务序号] 删除第几项任务

(2)使用 crontab 命令,设置周期性计划任务

    • 脚本名称:/etc/init.d/crond
    • 主要配置文件:
  • 全局配置文件:/etc/crontab
  • 管理 cron 计划任务
    • 编辑:crontab -e [-u 用户名]
    • 查看:crontab -l [-u 用户名]
    • 删除:crontab -r [-u 用户名]
  • 时间数值的特殊表示方法
    • * 表示该范围内的任意时间
    • , 表示间隔的多个不连续时间点
    • - 表示一个连续的时间范围
    • / 指定间隔的时间频率
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!