进程和计划任务管理

进程

什么是进程

进程是在CPU及内存中运行的程序代码,是动态执行的代码,每个程序可以创建一个或多个进程。

父进程和子进程

进程可分为父进程和子进程。

父进程负责保证程序的存活及创建和管理子进程。

每个子进程负责程序的一个功能。

如何查询进程

查看进程信息的命令有:ps

ps----查看静态进程统计信息

常用命令ps -aux,ps -elf

ps -aux

a:显示终端上所有进程,包括其他用户的进程

u:列出进程的用户

x:显示所有终端的进程

[root@localhost ~]# ps -aux
USER      PID      %CPU       %MEM       VSZ           RSS               TTY          STAT   START   TIME    COMMAND 
root       1       0.0       0.1       194088          7168               ?            Ss    15:33   0:01 /usr/lib/systemd/systemd
用户      PID号   CPU占用率  内存占用率  使用虚拟内存量 使用物理内存的量    启动进程的终端名    进程的状态  

USER:启动进程的用户。

PID:进程的ID。      

%CPU:进程占用的CPU百分比。       

%MEM: 进程占用内存的百分比。      

VSZ:进程使用的虚拟内存量(KB)          

RSS:进程占用的物理内存量(KB)。            

TTY:启动进程的终端名。不是从终端启动的进程则显示为?       

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

START:进程被触发启动时间。  

TIME:进程实际使用CPU运行的时间。    

COMMAND: 进程的启动命令。

ps -elf

e:显示系统内的所有进程信息。

l:使用长格式显示进程信息。

f:使用完整的格式显示进程信息。

[root@localhost ~]# ps -elf
F   S   UID     PID    PPID   C  PRI   NI  ADDR  SZ   WCHAN   STIME TTY          TIME    CMD
4   S   root     1      0    0   80    0    -   48522 ep_pol  15:33  ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

F:内核分配给进程的系统标记。

S:进程的状态。

UID:启动这些进程的用户。

PID:进程的进程ID。

PPID:父进程的进程号(如果该进程是由另一个进程启动的)。

C:进程生命周期中的CPU利用率。

PRI:进程的优先级(越大的数字代表越低的优先级)

NI:谦让度值,用来参与决定优先级。

ADDR:进程的内存地址。

SZ:假如进程被换出,所需交换空间的大致大小。

WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。

STIME:进程启动时的系统时间。

TTY:启动进程的00终端设备。

TIME:运行进程需要的累计CPU时间。

CMD:进程的启动命令

top----查看进程的动态信息
 
[root@localhost ~]# top
top - 16:42:59 up  1:09,  3 users,  load average: 0.00, 0.01, 0.05
Tasks: 235 total,   1 running, 234 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 :  3861508 total,  1862584 free,   893536 used,  1105388 buff/cache
KiB Swap: 10485756 total, 10485756 free,        0 used.  2506764 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 20209 sunlei    20   0  714332  17100   9676 S   0.3  0.4   0:00.40 gsd-color

第一行是队列信息

16:42:59 :系统时间

up  1:09  :系统运行时长

3 users   :当前登录的用户数

load average: 0.00, 0.01, 0.05   :系统负载,即单位时间内系统处理的热任务数。 0.00, 0.01, 0.05表示1分钟,5分钟,15分钟前到现在的平均值。

第二行是进程信息

Tasks:总进程数
running:正在运行的进程数
sleeping:休眠的进程数
stopped:中止的进程数
zombie:僵死的进程数

pgrep----查看进程PID信息

根据特定条件查询进程PID信息

-a:显示进程名和PID

[root@localhost ~]# pgrep -a log
4334 xfs-log/dm-0
8069 xfs-log/sda2
8751 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IRQ: stack overflow: ear stack overflow (cur: eneral protection fault nable to handle kernel ouble fault: RTNL: assertion failed eek! page_mapcount(page) went negative! adness at NETDEV WATCHDOG ysctl table check failed : nobody cared IRQ handler type mismatch Kernel panic - not syncing: Machine Check Exception: Machine check events logged divide error: bounds: coprocessor segment overrun: invalid TSS: segment not present: invalid opcode: alignment check: stack segment: fpu exception: simd exception: iret exception: /var/log/messages -- /usr/bin/abrt-dump-oops -xtD
8760 /usr/lib/systemd/systemd-logind
9326 /usr/sbin/rsyslogd -n

-c:仅显示匹配进程的数量

[root@localhost ~]# pgrep -c log
5

-f:匹配进程名及其参数

[root@localhost ~]# pgrep -f log
4334
8069
8751
8760
9326
19551
19716
19998

-l:显示进程名,缺省时只输出PID号

[root@localhost ~]# pgrep "log"
4334
8069
8751
8760
9326
[root@localhost ~]# pgrep -l "log"
4334 xfs-log/dm-0
8069 xfs-log/sda2
8751 abrt-watch-log
8760 systemd-logind
9326 rsyslogd

-U:指定用户

[root@localhost ~]# pgrep -U root

-t:指定终端

[root@localhost ~]# pgrep -t tty1
19388
pstree----以树型列出进程信息

-a:显示完整信息

-u:列出对应用户名

-p:列出PID号

进程的启动方式
手工启动
前台启动

用户输入命令执行程序

[root@localhost opt]# cd ..
[root@localhost /]# ps -aux |grep cd
root         58  0.0  0.0      0     0 ?        S<   15:33   0:00 [kmpath_rdacd]
root      78399  0.0  0.0 112728   988 pts/1    S+   17:22   0:00 grep --color=auto cd
后台启动

在命令行尾加入 & 符号

[root@localhost /]# cp /etc/passwd /opt &
[1] 78428
进程的前后台调度

Ctrl+Z将进程调入后台

jobs查询后台进程

fg将后台进程恢复到前台运行

调度启动
使用at命令设置一次性任务

Ctrl+D提交任务

使用crontab命令设置周期性任务

按照设置好的时间周期(分钟、小时、天、月、周)重复执行指定的命令

主要的设置文件

全局配置文件,/etc/crontab

系统默认的设置,/etc/cron.*

用户定义设置,/var/spool/cron/用户名

crontab命令设置周期计划的命令格式

终止进程的运行

Crl+C:中断正在执行的命令

kill:指定PID号终止进程。

killall:终止指定名称相关的所有进程

-9选项表示强制终止,不加默认为15

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

pkill的常用选项有

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值