linux进程和计划任务

一、linux系统进程

       在linux系统中,操作系统是通过进程去完成一个一个的任务,进程是管理事务的基本单元。进程拥有自己独立的处理环境(如:当前需要用到哪些环境变量,程序运行的目录在哪,当前是哪个用户在运行此程序等)和系统资源(如:处理器 CPU 占用率、存储器、I/O设备、数据、程序)。

        当你在linux系统中执行一个程序时,系统会为这个程序创建特定的环境。这个环境包含系统运行这个程序所需的任何东西。

        每当你在linux中执行一个命令,它都会创建,或启动一个新的进程。比如,当你尝试运行命令“ls -l”来列出目录的内容时,你就启动了一个进程。如果有两个终端窗口显示在屏幕上,那么你可能运行了两次同样的终端程序,这时会有两个终端进程。

        每个终端窗口可能都运行了一个Shell,每个运行的Shell都分别是一个进程。当你从Shell调用一个命令时,对应的程序就会在一个新进程中执行,当这个程序的进程执行完成后,Shell 的进程将恢复运行。

        操作系统通过被称为PID或进程ID的数字编码来追踪进程。系统中的每一个进程都有一个唯一的PID。

二、进程的状态

        每个 Linux 进程都有它自己的生命周期,比如,创建、执行、结束和清除。每个进程也都有各自的状态,显示进程中当前正发生什么。进程的状态是变化的,其包括进程的创建、调度和消亡。

进程可以有如下几种状态:

  • D(不可中断休眠状态)——进程正在休眠并且不能恢复,直到一个事件发生为止。

  • R(运行状态)——进程正在运行。

  • S(休眠状态)——进程没有在运行,而在等待一个事件或是信号。

  • T(停止状态)——进程被信号停止,比如,信号 SIGINT 或 SIGSTOP。

  • Z(僵死状态)——标记为 <defunct> 的进程是僵死的进程,它们之所以残留是因为它们的父进程适当地销毁它们。如果父进程退出,这些进程将被 init 进程销毁。

三、进程管理相关命令

1、ps命令

       ps 即 process state,可以查看进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在/proc/数字 目录/status 下的各文件中

  • "ps aux" 可以查看系统中所有的进程;
  • "ps -le" 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级。

常用选项

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

表头含义

  • USER-------该进程是由哪个用户产生的
  • PID-------进程的ID
  • %CPU-------该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源
  • %MEM-------该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源
  • VSZ-------该进程占用虚拟内存的大小,单位为KB
  • RSS-------该进程占用实际物理内存的大小,单位为KB
  • TTY-------该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长
  • STAT-------进程状态
  • START-------该进程的启动时间
  • TIME-------该进程占用CPU的运算时间,注意不是系统时间
  • COMMAND-------产生此进程的命令名

 表头含义

  • F-------进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限
  • S-------进程状态。具体的状态和"psaux"命令中的STAT状态一致
  • UID-------运行此进程的用户的ID
  • PID-------进程的ID
  • PPID-------父进程的ID
  • C-------该进程的CPU使用率,单位是百分比
  • PRI-------进程的优先级,数值越小,该进程的优先级越高,越早被CPU执行;系统定义不可以人为修改
  • NI-------进程的优先级,数值越小,该进程越早被执行;可以人为修改
  • ADDR-------该进程在内存的哪个位置
  • SZ-------该进程占用多大内存
  • WCHAN-------该进程是否运行。"-"代表正在运行
  • TTY-------该进程由哪个终端产生
  • TIME-------该进程占用 CPU 的运算时间,注意不是系统时间
  • CMD-------产生此进程的命令名

2、top命令

       top命令是linux下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu、内存的使用)占用状况,top命令的执行结果是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。

常用选项

  • -d-------指定刷新时间间隔,默认为3秒
  • -b-------全部显示所有进程
  • -n-------刷新多少次后退出

第一行:任务队列信息

  • 18:12:01-------系统当前时间
  • up 1:36-------运行时间
  • 2 user-------登陆终端数
  • load average:0.00,0.01,0.05-------系统负载(三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低)

第二行:进程信息

  • Tasks:169 total-------进程总数
  • 1 running-------运行中的进程总数
  • 168 sleeping-------睡眠中的进程数
  • 0 stopped-------停止的进程数
  • 0 zombie-------僵尸的进程数

第三行:cpu信息

  • %Cpu(s):0.3 us-------用户占用资源百分比
  • 0.3 sy-------系统内核占用资源百分比
  • 0.0 ni-------改变过优先级的进程资源百分比
  • 99.3 id-------空闲的资源百分比
  • 0.0 wa-------等待输入输出的cpu时间百分比
  • 0.0 hi-------硬中断占用的cpu百分比
  • 0.0 si-------软中断占用的cpu百分比
  • 0.0 st-------用于虚拟cpu的使用情况

第四行:物理内存信息

  • Kib Mem:1867024 total-------物理内存总量(单位KB)
  • 576096 free-------内存空闲量
  • 681152 used-------内存使用量
  • 609776 buff/cache-------作为内核缓存的内存量

第五行:虚拟内存信息

  • Kib Swap:4194300 total-------虚拟内存总量
  • 4194300 free-------虚拟内存空闲量
  • 0 used-------虚拟内存使用量
  • 957368 avail Mem-------已被提前加载的内存量

第六行:具体的系统进程的资源使用的详细情况

  • PID-------进程ID
  • USER-------进程所有者的用户名
  • PR-------优先级
  • NI-------nice值(负值表示搞优先级,正值表示低优先级)
  • VIRT-------进程使用的虚拟内存总量(KB)
  • RES-------进程使用的未被换出的物理内存大小(KB)
  • SHR-------共享内存大小(KB)
  • S-------进程状态
  • %CPU-------进程上次更新到现在的CPU时间占用百分比
  • %MEM-------物理内存占比
  • TIME+-------进程使用的CPU时间总计(单位1/100秒)
  • COMMAND-------命令名。默认各进程是按照CPU的占用量来排序的

3、pgrep命令

       查看指定的进程

  • -U-------指定用户
  • -l-------显示进程名
  • -a-------显示完整格式的进程名
  • -P pid-------显示指定进程的子进程

 4、pstree命令

       以树形结构列出进程信息

  • -a-------显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
  • -p-------显示PID
  • -T-------不显示线程thread,默认显示线程
  • -u-------显示用户切换
  • -H-------pid 高亮显示指定进程及其前辈进程

5、lsof命令

       “list opened files”的缩写,直译过来,就是列举系统中已经被打开的文件。通过 lsof 命令,我们就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

  • -c 字符串-------只列出以字符串开头的进程打开的文件
  • +d 目录名-------目录名列出某个目录中所有被进程调用的文件
  • -u 用户名-------用户名只列出某个用户的进程打开的文件
  • -p pid-------列出某个 PID 进程打开的文件

6、vmstat命令

       vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。

  • -fs-------f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的processes字段中取得的。 -s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明
  • -S------单位令输出的数据显示单位,例如用 K/M 取代bytes的容量
  • -d------列出硬盘有关读写总量的统计表
  • -p  分区设备文件名------分区设备文件名查看硬盘分区的读写情况

7、kill命令

       kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。Linux 定义了几十种不同类型的信号,读者可以使用 kill -l 命令查看所有信号及其编号,这里仅列出几个常用的信号。

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

8、killall命令

       killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用。

用法:killall [选项] [信号] 进程名

  • -i-------交互式,询问是否要杀死某个进程
  • -l-------忽略进程名的大小写

四、计划任务

1、at一次性任务设置

 2、crontab周期性任务设置

用法:crontab [选项] [file]

  • -e-------编辑计划任务列表
  • -u-------指定所管理的计划任务属于哪个用户,默认针对当前用户、一般只有root用户有权限设置
  • -l-------列表显示任务计划
  • -r-------删除任务计划列表

# 定义示例:
# .---------------- minute (0 - 59)
# |   .------------- hour (0 - 23)
# |   |  .---------- day of month (1 - 31)
# |   |  |   .------- month (1 - 12) OR jan,feb,mar,apr ...
# |   |  |   |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |   |  |   |  |
# *  *  *  *  * user-name  command to be executed

 6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值