进程和计划任务

一、程序

  1.1 什么是程序

    程序放在硬盘上,程序时执行特定任务的一串代码

二、进程

  2.1 什么是进程

    进程放在加载到内存中运行,进程是程序的副本,进程是有生命周期。

    创建进程:

      Centos6的第一个进程为init,Centos7的第一个进程为systemd

  2.2 进程的特征

  •     动态性
  •     并发性
  •     独立性
  •     结构性

  2.3 进程、线程和协程的特点

  1.     减少硬件资源的消耗
  2.     进程切换
  3.     相同资源的存储

  面试题:进程和线程如何确定一个程序是多线程还是单线程?

    要查看该进程的详细状态

    命令:

      cat proc/该程序的PID号文件夹/status

      grep i threads proc/该程序的PID号文件夹/status

      prstat 进程pid号

  面试题:1. 如何过滤见识过hi进程?

    ps aux | grep -v grep | grep Z

                  2. 如何结束僵尸进程

    重启reboot

  2.4 进程和重启的问题

    内存泄漏:Memory Leak

    内存溢出:Memory Overflow

    内存不足:Out Of Memory

    内存不足的原因:

      1. 给应用分配内存太少,例如虚拟机本身使用的内存较少

      2. 应用给的太多,没有释放完,就会造成内存泄露或者内存溢出

    常用的解决方法:

  •       限制数量的使用,从而降低内存的使用
  •       给系统增加swap空间

    进程更多的状态:

      运行态:running

      就绪态:ready

      睡眠态:分为两种状态——1.interruptable(可中断)

                                                      2.uninterruptable(不可中断)

      停止态:stopped,暂停与内存,只有手动操作

      僵死态:zombie,杀死父进程可以关闭子进程

    进程结束后,父进程会回收子进程的硬件资源

  2.5 进程分类

    进程类型:

  •       守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
  •       前台进程:跟终端相关,通过终端启动的进程

三、进程管理相关命令

  进程的管理主要是指进程的关闭与重启。比如,要重启 apache 服务,一般使用命令"service httpd restart"重启 apache的程序。systemctl httpd start。

  系统中可以识别的信号较多,我们可以使用命令"kill -l"或"man 7 signal"来查询。

代号 名称 说明
1 SIGHUP 让进程立即关闭,读取文件后重启
2 SIGINT 终止前台程序,相当于CTRL+C
3 SIGQUIT 退出
8 SIGFRE 发生致命的运算错误时才会发出
9 SIGKILL 用来强制终止程序运行
14 SIGALRM 时钟定时信号,用来计算实际时间和时钟时间
15 SIGTERM 无法正常终止程序运行,所以要尝试SIGKILL
18 SIGCONT 让暂停的进程恢复执行
19 SIGSTOP 该信号可以暂停前台进程,但不能阻断。相当于CTRL+Z

  3.1 ps命令

    查看静态的进程统计信息

      ps aux——可以查看系统中所有的进程

      ps -le——可以查看系统中所有的进程,还可以该进程的父进程PID和进程优先级

      ps -l——只能查看当前Shell产生的进程 

常用选项 功能
a 显示当前终端下的所有进程信息,包括其他用户的进程
u 使用以用户为主的格式输出进程信息
x 显示当前用户在所有终端下的进程信息
-e 显示系统内的所有进程信息
-l 使用长(Long)格式显示进程信息
-f 使用完整的(Full)格式显示进程信
k | --sort 对属性排序,属性前加 - 表示倒序
o 选项显示定制的信息 pid、cmd、%cpu、%mem

    进程和计划任务_第1张图片

    [root@localhost ~ ] # ps -ax——终端有关或无关的进程

    [root@localhost ~ ] # ps-aux——和用户有关的进程 

    ps aux

表头 含义
USER 哪个用户产生
PID 进程的ID
%CPU 占用CPU资源的百分比,占用越高消耗越大
%MEM 占用物理内存的百分比,占用越高小号远大
VSZ 占用虚拟内存大小,单位为KB
RSS 占用实际物理内存大小,单位为KB
TTY 在哪个终端运行的
STAT

-D:不可唤醒状态

-R:该进程正在运行

-S:休眠状态可被唤醒

-T:停止状态

-W:内存呼唤状态

-X:挂掉的进程

-Z:僵尸进程。进程虽终止,但还是占用硬件资源

-<:高优先级

-N:低优先级

-L:被锁入内存

-s:包含子进程

-l:多线程

-+:位于后台

START 进程的启动时间
TIME 占用CPU运算时间
COMMAND 产生此进程的命令

     ps -ef        命令输出信息

表头 含义
F 进程标志,说明进程的权限
S 进程的状态
UID 此进程的用户ID
PID 进程的ID
PPID 父进程的ID
C 该进程的CPU使用率,单位为百分比
PRI 进程优先级,数值越小优先级越高,系统不可被修改
NI 进程优先级,数值越小优先级越高,系统可被修改
ADDR 该进程在内存的哪个位置
SZ 该进程占用多大内存
WCHAN 该进程是否运行,'-'表示正在运行
TTY 该进程由哪个终端产生
TIME 此进程占用CPU的运算时间
CMD 此进程的命令名

  3.1.1 查看进程信息prtstat

    prtstat 18295

  3.2 top命令

选项 功能
-d 指定top命令每隔几秒更新。默认为3秒
-b 使用批处理模式输出
-n 指定top命令执行的次数
-p 查看指定ID的进程
-s top命令在安全模式下运行
-u 只监听某个用户的进程

    top命令显示窗口,还有其他按键可以交互

选项 功能
?或h 显示交互模式的帮助
c 按照CPU的使用率排序
M 按照内存的使用率排序
N 按照PID排序
T 按照CPU累计运算时间排序
k 按照PID给于某个进程一个信号
r 按照PID给某个进程重设优先级(Nice)值
q 退出top命令
  3.2.1 htop

    增强版的top

  3.3 pgrep命令

    查看指定的进程

选项 功能
-U 指定用户
-l 显示进程号
-a 显示完整格式的进程名
-p pid显示指定进程的子进程

  3.4 pstree命令进程树

    以树形结构列出进程信息

选项 功能
-a 显示启动每个进程对应的完整指令,包括路径、参数等
-p 显示PID
-T

不显示线程thread,显示默认线程

-u 显示用户切换
-H pid高亮

  3.5 lsof

    列举系统中已经被打开的文件。

    格式:lsof [选项]

选项 功能
-c(字符串) 只列出字符串开头打开的文件
-d(目录名) 列出某个目录所有被进程调用的文件
-u(用户名) 只列出某个用户的进程打开的文件
-p(pid) 列出某个PID进程打开的文件

  

  3.6 五大性能

    cpu                 top w

    内存                 top free

    硬盘分区         fdisk

    硬盘剩余         df

    硬盘读写性能 iostat

    网络带宽         iftop

  3.7 系统资源统计

    yum  install   dstat -y

四、进程管理

  4.1 手动启动

    前台运行:影响当前终端的操作

    后台运行:不影响当前终端的操作

  4.1.1 "命令 &",把命令放入后台执行

    让作业运行于后台。

    注意,放入后台执行的命令不能与前台有交互,否则这个命令是不能在后台执行的

  4.1.2 查看后台人物列表jobs

  4.1.3 调出后台任务fg

  4.1.3 继续任务bg

  4.2 结束进程

    4.2.1 kill

      kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

      kill的原理:kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

      格式:kill [信号] PID 

信号编号 信号名 含义
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2 INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3 QUIT 退出。
9 KILL 杀死进程,即强制结束进程。
11 SEGV 段错误。
15 TERM 正常结束进程,是 kill 命令的默认信号。

  4.2.2 killall

    格式:killall [选项] [信号] 进程名

    交互杀死:killall -i sshd

  4.2.3 pkill

    格式:pkill [信号] 进程名

    pkill [-t 终端号] 进程名
      -U:根据进程所属的用户名终止相应进程
      -t:根据进程所在的终端终止相应进程

五、计划任务

  5.1 at一次性

    at 时间

    ctrl+d 提交

    atq 可以查看任务列表

    atrm 任务序列号 可以删除任务

    /etc/at.allow 默认所有用户不可以使用at只有在at.allow

    文件中的用户才可以用at命令

    /etc/at.deny 默认所有用户可以使用at,只有在里面不可以写

  5.2 crontab周期

    格式:crontab [选项] [file]

选项 功能
-u user 用来设定某个用户的 crontab 服务
-e 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r 从 /var/spool/cron 删除用户的 crontab 文件,如果不指定用户,默认删除当前用户的 crontab 文件。
-i 在删除用户的 crontab 文件时,给确认提示。
项目 含义 范围
* 0-59
* 0-23
* 1-31
* 1-12
* 0-7

你可能感兴趣的:(linux,运维,服务器)