程序和进程的关系

本文详细介绍了Linux系统中程序与进程的区别,以及它们与线程的关系。讲解了如何通过`ps`、`top`、`pgrep`和`pstree`命令查看进程信息,并展示了如何控制进程,包括前后台调度和终止进程。此外,还阐述了使用`at`和`crontab`进行一次性及周期性任务设置的方法,以及时间数值的特殊表示。总结了查看和管理Linux进程的关键操作。
摘要由CSDN通过智能技术生成

目录

程序和进程的关系

程序 进程 线程的关系

查看进程信息ps

查看动态的进程信息top

查看进程信息pgrep

控制进程

进程的前后台调度

终止进程的运行

at一次性任务设置

crontab周期性任务设置

时间数值的特殊表示方法

总结

程序和进程的关系

程序

进程

程序 进程 线程的关系

查看进程信息ps

查看静态的进程统计信息

方法一 aux

方法二 elf

查看动态的进程信息top

查看进程信息pgrep

根据特定条件查看进程信息

查看进程信息pstree

pstree命令

控制进程

进程的启动方式

手工启动

调度启动

进程的前后台调度

ctrl+z组合键

jobs命令

fg命令

终止进程的运行

ctrl+C组合键

kill、killall命令

at一次性任务设置

at命令

案例

crontab周期性任务设置

crontab任务配置的格式

时间数值的特殊表示方法

应用实例

总结


程序和进程的关系

程序

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

  • 静态保存的代码

进程

  • 在CPU及内存中运行的程序代码

  • 动态执行的代码

  • 父、子进程

    • 每个程序可以创建一个或多个进程

  1. 程序二进制的文件、静态。

  2. 进程是程序运行的过程属于动态,有生命周期及运行状态

程序 进程 线程的关系

线程包含在进程之中,是进程中的实际运作单位,也是操作系统中能够独立运行的基本单位,也称作轻量进程,一个进程中可以并发多个线程,每一条线程可以并行执行不同的任务,而我们在任务管理器中看到的一个个进程,则由我们的下载的应用程序所产生的,当然一个应用程序也可以包含多个进程

协程利用线程等待是时间去做别的事 切换任务源 提高任务效率

查看进程信息ps

查看静态的进程统计信息

[root@localhost~]#ps -aux
[root@localhost~]#ps -elf  #将以长格式显示系统中的进程信息

方法一 aux

  • 常用参数

-a:显示当前终端下的所有进程,包括其他用户的进程。与"x"选项结合时将显示系统中所有的进程信息
-u:使用以与用户为主的格式输出进程信息
-x:显示当前用户在所有终端下的进程信息
  • 常用的选项组合

ps -aux  #将以简单的列表的形式显示出进程信息
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID 号,在当前系统中是唯一的。
%CPU:CPU占用的百分比。
%MEM:内存占用的百分比。
vsz:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?。
简说: pts是远程登录终端ctrl+ALT F1-F6   tty1图像界面  2和6字符界面   ?系统本身自身执行的进程

STAT:该进程的状态(D:不可中断的休眠状态;R:正在运行状态;S:休眠状态,可被唤醒;T:停止状态,可能时在后台暂停或进程处于跟踪调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)

D:系统守护进程
T:调式、程序执行一般停止
R:该程序目前正在运作,或者是可被运作;
S:该程序目前正在睡眠当中(可说是 idle状态啦! ),但可被某些讯号(signal)唤醒。
T:该程序目前正在侦测或者是停止了;
Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie(疆尸)程序的状态D不可中断状态.
​
 它们含意如下:
<:表示进程运行在高优先级上
N:表示进程运行在低优先级上
L:表示进程有页面锁定在内存中
s:表示进程是控制进程
l:表示进程是多线程的
+:表示当前进程运行在前台
D:系统守护进程
T调式、程序执行一般停止
​
START:启动该进程的时间。
TIME:该进程占用的cPU时间。
COMMAND:启动该进程的命令的名称

方法二 elf

-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息
​
各列的解释:
F:内核分配给进程的系统标记
S:进程的状态
UID:启动这些进程的用户
PID:进程的进程ID
PPID:父进程的进程号(如果该进程是由另一个进程启动的)
C:进程

查看动态的进程信息top

[root@localhost~]#top
-D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
-R:该进程正在运行。
-S:该进程处于睡眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。
-W:内存交互状态(从 2.6 内核开始无效)。
-X:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在 BSD 格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写 L)。
-+:位于后台。
-C:进程占用CPU的百分比

查看进程信息pgrep

根据特定条件查看进程信息

[root@localhost~]# pgrep
[root@localhost~]#pgrep -l "log"
2538 rsyslogd
2113 mcelog
[root@localhost~]# pgrep -l -U teacher -t tty1
27483 bash
27584 vim

查看进程信息pstree

pstree命令

  • 以树形结构列出进程信息

[root@localhost~]# pstree -aup
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID号

控制进程

进程的启动方式

手工启动

  • 前台启动:用户输入命令,直接执行程序

  • 后台启动:在命令行尾加入“&”符号

[root@local~]# cp /dev/cdrom mycd.iso $
[1] 28454

调度启动

  • 使用at命令,设置一次性计划任务

  • 使用crontab命令,设置周期性计划任务

进程的前后台调度

ctrl+z组合键

  • 将档期那进程挂起,即调入后台并执行

jobs命令

  • 查看处于后台的任务列表

fg命令

将后台进程恢复到前台运行,可指定任务序号

[root@localhost~]# jobs
[1]- Stopped     cd /dev/cdrom mycd.iso
[2]+ Stopped     top
[root@localhost~]# fg 1

终止进程的运行

ctrl+C组合键

  • 中断正在执行的命令

kill、killall命令

  • kill用于终止指定PID号的进程

  • killall用于终止指定名称的所有进程

  • -9选项用于强制终止

pkill命令

根据特定条件终止相应的进程

常用命令选项

-U:根据进程所属的用户名终止相应进程

-t:根据进程所在的终端相应进程

[root@localhost~]# pgrep -l -U "hackli"
3045 bash
[root@localhost~]# pkil -9 -U "hackli"
[root@localhost~]# pgrep -l -U "hackli"

at一次性任务设置

at命令

  • 一次性计划任务

at [HH:MM] [yyyy-mm-dd]

[root@localhost ~]# date
Sun May 7 10:33:13 EDT 2017
[root@localhost ~]# at 10:35 2017-05-07
at> pgrep -U root|wc -l > /tmp/ps.root
at> <EOT>按Ctrl+D键提交任务
job 1 at Sun May 7 10:35:00 2017
[root@localhost ~]# cat /tmp/ps.root
202

案例

在当天的21:30时自动关闭当前系统

[root@localhost ~]# at 21:30
at> shutdown -h now
at> <EOT>
job 2 at Sun May 7 21:30:00 2017
[root@localhost ~]# atq  查看未执行的任务列表
2 Sun May 7 21:30:00 2017 a root
[root@localhost ~]# atrm 2  删除第2条任务
[root@localhost ~]# atq

crontab周期性任务设置

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 * *          #每三天

总结

  • 查看进程的命令(ps、top.pgrep.pstree)

  • 进程控制

  • 启动进程、调度进程、终止进程

    • at命令设置计划任务

  • crontab计划任务的配置字段

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值