千家信息网

理论:linux进程和计划任务管理

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,前言查看进程:分为动态查看和动态查看控制进程:以关掉进程为主,可以按条件关闭指定进程,全部关闭所有进程at 一次性任务设置crontab 周期性任务设置一: 程序和进程的关系1、 程序保存在硬盘、光盘
千家信息网最后更新 2026年11月02日理论:linux进程和计划任务管理

前言

查看进程:分为动态查看和动态查看

控制进程:以关掉进程为主,可以按条件关闭指定进程,全部关闭所有进程

at 一次性任务设置

crontab 周期性任务设置

一: 程序和进程的关系

1、 程序

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

  • 静态保存的代码

2、 进程

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

  • 动态执行的代码

  • 父、子进程

​ - 每个进程可以创建一个或多个进程

3、程序、进程、线程之间的三者关系

一个应用程序可以包含一个或多个应用进程

一个进程包含一个或多个线程

线程是执行操作的最小单元

例子:

应用程序=工厂

进程=车间

线程=工人

高并发处理依赖于多线程操作

二 :查看静态进程信息 ps

2.1 ps 命令

直接执行不带任何子选项的命令时,将只显示当前用户会话中打开的进程

[root@localhost ~]# ps   PID TTY          TIME CMD  4898 pts/1    00:00:00 bash  5249 pts/1    00:00:00 ps

2.2 ps aux 命令

查看静态的进程统计信息

[root@localhost ~]# ps aux
[root@localhost ~]# ps auxUSER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot          1  0.0  0.3 128212  6836 ?        Ss   10:43   0:01 /usr/lib/systemd/sroot          2  0.0  0.0      0     0 ?        S    10:43   0:00 [kthreadd]root          3  0.0  0.0      0     0 ?        S    10:43   0:00 [ksoftirqd/0]root          5  0.0  0.0      0     0 ?        S<   10:43   0:00 [kworker/0:0H]root          6  0.0  0.0      0     0 ?        S    10:43   0:00 [kworker/u256:0]root          7  0.0  0.0      0     0 ?        S    10:43   0:00 [migration/0]root          8  0.0  0.0      0     0 ?        S    10:43   0:00 [rcu_bh]root          9  0.0  0.0      0     0 ?        R    10:43   0:00 [rcu_sched]root         10  0.0  0.0      0     0 ?        S    10:43   0:00 [watchdog/0]root         12  0.0  0.0      0     0 ?        S    10:43   0:00 [kdevtmpfs]root         13  0.0  0.0      0     0 ?        S<   10:43   0:00 [netns]root         14  0.0  0.0      0     0 ?        S    10:43   0:00 [khungtaskd]

a 显示当前终端下的所有进程信息,包括其他用户的进程。与x结合时将显示系统中所有的进程信息 不带-

u 使用已用户为主的格式输出进程信息,不带-

x 显示当前用户在所有中终端下的进程信息,不带-

-e 显示系统中的所有进程信息

-l 使用长格式(long)显示进程信息

-f 使用完整的(full/)格式显示进程信息

竖着读的一列叫做字段,也叫做属性

字段解释
USER启动该进程的用户账号的名称
PID该进程在系统中的数字ID进程号,在当前系统中是唯一的
%CPUCPU的资源渣用率
%MEM内存的占用率
VSZ虚拟内存,在进程启用完毕后会释放归0
RSS占用物理内存的大小(常驻内存)
TTY显示了该进程在哪个终端上运行,是在本地终端还是在远程终端。"?"表示未知或者不需要终端
STAT进程状态,S代表休眠,R代表运行,Z代表僵死,s代表父进程,<代表高优先级,N代表低优先级,+代表前台进程,l代表多线程;对于僵死进程需要及时手动关闭终止
TIME表示启动该进程的已运行时间
COMMAND表示启动该进程的命令的所处位置

2.3 ps elf命令

  • 查看静态的进程统计信息
[root@localhost ~]# ps -fle
[root@localhost ~]# ps -fleF S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD4 S root          1      0  0  80   0 - 32053 ep_pol 10:43 ?        00:00:01 /usr/lib/systemd/sy1 S root          2      0  0  80   0 -     0 kthrea 10:43 ?        00:00:00 [kthreadd]1 S root          3      2  0  80   0 -     0 smpboo 10:43 ?        00:00:00 [ksoftirqd/0]1 S root          5      2  0  60 -20 -     0 worker 10:43 ?        00:00:00 [kworker/0:0H]1 S root          6      2  0  80   0 -     0 worker 10:43 ?        00:00:00 [kworker/u256:0]1 S root          7      2  0 -40   - -     0 smpboo 10:43 ?        00:00:00 [migration/0]1 S root          8      2  0  80   0 -     0 rcu_gp 10:43 ?        00:00:00 [rcu_bh]1 R root          9      2  0  80   0 -     0 -      10:43 ?        00:00:00 [rcu_sched]5 S root         10      2  0 -40   - -     0 smpboo 10:43 ?        00:00:00 [watchdog/0]5 S root         12      2  0  80   0 -     0 devtmp 10:43 ?        00:00:00 [kdevtmpfs]1 S root         13      2  0  60 -20 -     0 rescue 10:43 ?        00:00:00 [netns]1 S root         14      2  0  80   0 -     0 watchd 10:43 ?        00:00:00 [khungtaskd]1 S root         15      2  0  60 -20 -     0 rescue 10:43 ?        00:00:00 [writeback]1 S root         16      2  0  60 -20 -     0 rescue 10:43 ?        00:00:00 [kintegrityd]1 S root         17      2  0  60 -20 -     0 rescue 10:43 ?        00:00:00 [bioset]

额外看到PPID,可以详细了解到该子进程的父进程是谁

PRI 用户态的优先级,可以进行人为控制的优先级

NI 是nice值(-20~19,值越小优先级越大)

不输入-,只输入ps lef得到一下结果

[root@localhost ~]# ps lefF   UID    PID   PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND4     0   4898   4894  20   0 116100  2808 do_wai Ss   pts/1      0:00 -bash USER=root LOGNAME=r4     0   5436   4898  20   0 148984  1468 -      R+   pts/1      0:00  \_ ps lef XDG_SESSION_ID4     0   2386   2379  20   0 116348  2868 n_tty_ Ss+  pts/0      0:00 bash USER=root LANG=zh_CN4     0   1371   1150  20   0 281984 26360 ep_pol Ssl+ tty1       0:01 /usr/bin/X :0 -background

2.4 结合管道操作

由于系统中运行的进程数量较多,需要查询某一个进程的信息时可以结合管道操作和grep命令进行过滤

举例:

[root@localhost ~]# ps aux | grep bashroot        781  0.0  0.0 115308   948 ?        S    10:43   0:00 /bin/bash /usr/sbin/ksmtunedroot       1748  0.0  0.0  51376   584 ?        Ss   10:43   0:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"root       2386  0.0  0.1 116348  2868 pts/0    Ss+  10:43   0:00 bashroot       4898  0.0  0.1 116100  2808 pts/1    Ss   13:45   0:00 -bashroot       5360  0.0  0.0 112728   968 pts/1    R+   14:18   0:00 grep --color=auto bash[root@localhost ~]# ps aux | grep "bash$"root       2386  0.0  0.1 116348  2868 pts/0    Ss+  10:43   0:00 bashroot       4898  0.0  0.1 116100  2808 pts/1    Ss   13:45   0:00 -bash

三 :查看动态进程信息 top

top命令

  • 查看动态的进程排名信息
[root@localhost ~]# top

表格是动态的

  • tasks 系统任务信息; total 总进程数; running 正在运行的进程数; sleeping 休眠的进程数; stopped 中止的进程数; zombie 僵死无响应的进程数
  • cpu占用信息(%Cpu(s));us 用户占用; sy 内核占用; ni 优先级调度占用; id 空闲cpu; wa I/O等待占用; hi 硬件中断占用; si 软件中断占用; st 虚拟化占用;
  • Kib MEN 内存占用信息; total 总内存空间; used 已用内存; free 空闲内存;buff/cache 缓冲区域
  • KiB Swap 交换空间占用; total 总交换空间; used 已用交换空间; free 空闲交换空间; avail Mem 缓存空间

在top查看过程中,可以按c键根据cpu占用情况对进程列表进行排序,按M可以根据MEM内存占用情况进行排序,按h获得帮助信息,按q退出top程序,按k就是关闭进程(kill),通常情况下k中会有当前占用内存最高的pid在其中,默认直接关闭,也可以输入对应的pid去回车终止对应的进程

动态top查看主要看cpu占用

四 :查看进程信息 pgrep

pgrep命令

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

[root@localhost ~]# pgrep -l "log"400 xfs-log/dm-0594 xfs-log/sda1624 xfs-log/dm-2688 systemd-logind707 rsyslogd715 abrt-watch-log727 abrt-watch-log[root@localhost ~]# pgrep  "log"400594624688707715727[root@localhost ~]# pgrep -l -U root -t tty11371 X

pgrep pid进程的过滤

-l 长格式显示,即显示进程名

-U 指定特定用户,检索查询该用户的进程

-t 指终端(telent ) tty1 代表远程终端

本地终端登录时会反馈为1

五: 查看进程信息 pstree

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

-a 显示完整信息

-u 列出对应用户名

-p 列出对应PID号

[root@localhost ~]# pstree -aup  '查看所有完整信息和所有用户以及列出与所有对应PID的进程树'systemd,1 --switched-root --system --deserialize 21  ├─ModemManager,689  │   ├─{ModemManager},708  │   └─{ModemManager},756  ├─NetworkManager,788 --no-daemon  │   ├─dhclient,911 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf...  │   ├─dhclient,913 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens36.pid -lf...  │   ├─{NetworkManager},792  │   └─{NetworkManager},795  ├─VGAuthService,700 -s  ├─abrt-watch-log,715 -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detectedernel BUG  ├─abrt-watch-log,727 -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD  ├─abrtd,710 -d -s  ├─accounts-daemon,694  │   ├─{accounts-daemon},706  │   └─{accounts-daemon},757......//省略部分信息[root@localhost ~]# pstree -ap root '只查看root用户的所有完整命令信息和对应的PID的进程数'systemd,1 --switched-root --system --deserialize 21  ├─ModemManager,689  │   ├─{ModemManager},708  │   └─{ModemManager},756  ├─NetworkManager,788 --no-daemon  │   ├─dhclient,911 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf...  │   ├─dhclient,913 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens36.pid -lf...  │   ├─{NetworkManager},792  │   └─{NetworkManager},795  ├─VGAuthService,700 -s  ├─abrt-watch-log,715 -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detectedernel BUG  ├─abrt-watch-log,727 -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD  ├─abrtd,710 -d -s  ├─accounts-daemon,694  │   ├─{accounts-daemon},706  │   └─{accounts-daemon},757

六 : 进程的启动方式

6.1 手工启动

  • 前台启动:用户输入命令,直接执行程序
  • 后台启动;在命令行尾加入"&(读end)"符号,后台启用是为了防止文件过大会影响正常使用系统,这时就要去后台启用
[root@localhost dev]# cp /dev/cdrom mycd.iso&[1] 6721    '输出信息中包括后台任务序号、产生对应的PID号'

6.2 调度启动(at、crontab)

  1. 使用at命令,设置一次性计划任务
  2. 使用crontab命令,设置周期性计划任务

6.3 进程的前后台调度

  1. Ctrl+Z 组合键
  • 将当前进程挂起,即调入后台并停止执行
  1. jobs 命令
  • 查看处于后台的进程列表
  1. fg命令
  • 将后台进程恢复到前台运行,可通过指定任务序号去选中
  1. bg命令
  • 将后台中的暂停执行的程序恢复运行,在后台进行接下来的操作

因为要复制的内容容量过大,所以会卡一下

命令执行完毕就会弹出命令行

为了解决这个问题,便出现了&

[root@localhost mnt]# cp -r Packages/ /opt/pas  '要执行的操作命令'^C  'ctrl+c中止命令'[root@localhost mnt]# cp -r Packages/ /opt/pas &    '后台运行'[2] 6970    '显示序号和进程PID号'[root@localhost mnt]# jobs  '查看后台的进程'[1]+  已停止               cp -i /dev/cdrom mycd.iso(工作目录:/dev)[2]-  运行中               cp -i -r Packages/ /opt/pas &[root@localhost mnt]# jobs -l   '-l可以详细列出pid号,以此进行管理'[1]+  6730 停止 (tty 输入)     cp -i /dev/cdrom mycd.iso(工作目录:/dev)[2]-  6970 运行中               cp -i -r Packages/ /opt/pas &[root@localhost mnt]# cp -rf Packages/ /opt/pa  ^Z  'ctrl+z把前台运行的命令切换到后台,被切换到后台的命令会被停止,如果需要再次让其运行,需要fg'[2]+  已停止               cp -i -rf Packages/ /opt/pa[root@localhost mnt]# fg 2  'fg 序号'cp -i -rf Packages/ /opt/pa '被切换到前台继续运行'^Z  '再次切换到后台'[2]+  已停止               cp -i -rf Packages/ /opt/pa[root@localhost mnt]# jobs      '再次查看后台程序'[1]-  已停止               cp -i /dev/cdrom mycd.iso(工作目录:/dev)[2]+  已停止               cp -i -rf Packages/ /opt/pa[root@localhost mnt]# jobs -l[1]-  6730 停止 (tty 输入)     cp -i /dev/cdrom mycd.iso(工作目录:/dev)[2]+  7114 停止                  cp -i -rf Packages/ /opt/pa[root@localhost mnt]# kill -9 6730  '强制杀掉pid为6730的进程'[root@localhost mnt]# jobs -l   '查看'[1]-  6730 已杀死  '被杀死'             cp -i /dev/cdrom mycd.iso(工作目录:/dev)[2]+  7114 停止                  cp -i -rf Packages/ /opt/pa[root@localhost mnt]# kill -9 7114  '依法炮制7114'[root@localhost mnt]# jobs -l[2]+  7114 已杀死               cp -i -rf Packages/ /opt/pa[root@localhost mnt]# fg -2 '再次把后台序号为2的进程切换到前台'-bash: fg: -2: 无效选项 '反馈无效选项'fg: 用法:fg [任务声明][root@localhost mnt]# jobs -l   '再次查看'[root@localhost mnt]#   '都没了'

七: 终止进程的运行

7.1 Ctrl+c 组合键

  • 终端正在执行的命令

7.2 kill、killall 命令

  • kill用于终止指定PID号的进程 kill pid
  • killall用于终止指定名称的所有进程 killall 进程
  • -9 选项用于强制终止
[root@localhost mnt]# systemctl start httpd '开启httpd'[root@localhost mnt]# netstat -ntap | grep 80   '查看80端口'tcp6       0      0 :::80                   :::*                    LISTEN      7466/httpd          [root@localhost mnt]# killall -9 httpd  '终止httpd的所有进程'[root@localhost mnt]# netstat -ntap | grep 80[root@localhost mnt]# 

7.3 pkill命令

  • 根据特定条件终止相应的进程
  • 常用命令选项
    • -U:根据进程所属的用户名终止相应进程
    • -t :根据进程所在的终端终止相应进程
[root@localhost mnt]# pgrep -l -U "lisi"    '检索用户-u lisi的进程,并显示-l pid对应的进程'7954 gnome-keyring-d7972 gnome-session-b7979 dbus-launch7980 dbus-daemon8038 gvfsd8043 gvfsd-fuse8129 ssh-agent8148 at-spi-bus-laun8153 dbus-daemon8158 at-spi2-registr8175 gnome-shell8183 pulseaudio8190 ibus-daemon[root@localhost mnt]# pkill -9 -U "lisi"    '强制终止-9 用户-U lisi的所有进程'[root@localhost mnt]# [root@localhost mnt]# pgrep -l -U "lisi"    '再次检索lisi,发现什么都没有'[root@localhost mnt]# [root@localhost mnt]# which pkill   '查看pkill的命令位置在哪'/usr/bin/pkill  '在usr下面的bin中,即所有用户都可以使用'

pkill -9 -U 代表强行注销用户

普通用户不可以踢掉pkill root

八、 计划任务管理 at、crond

8.1 at命令

  • 一次性计划任务
[root@localhost mnt]# at [HH:MM] [yyyy-mm-dd]   'at 小时:分钟 年-月-日'
[root@localhost mnt]# date  '查看当前时间'2019年 11月 12日 星期二 17:30:57 CST[root@localhost mnt]# at 17:33 2019-11-12   at> pgrep -U root | wc -l > /opt/test.txtat>        'ctrl+d,提交任务'job 1 at Tue Nov 12 17:33:00 2019[root@localhost mnt]# atq   '查看配置的任务,结果没有'[root@localhost mnt]# date      '看眼日期'2019年 11月 12日 星期二 17:33:59 CST  '过时间了'[root@localhost mnt]# cat /opt/test.txt180 '出现结果'

这个命令的时间必须是当前时间之后

date 获取当前系统时间

at>后面跟在未来的这个时间要执行的命令

eot 就是按ctrl +D键提交任务

也可以atq查看 ,查看将要指定的执行任务的列表

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

[root@localhost mnt]# at 21:30 2019-11-12at> shutdown -h now     '关闭当前系统'at> job 2 at Tue Nov 12 21:30:00 2019[root@localhost mnt]# atq2   Tue Nov 12 21:30:00 2019 a root[root@localhost mnt]# atrm 2    '删除计划任务2'[root@localhost mnt]# atq

atrm 删除 计划任务

8.2 crontab命令

  • 按照预先设置的时间周期(分时日月周)重复执行用户指定的命令操作
  • 属于周期性计划任务
  • 主要设置文件
    • 全局配置文件,位于文件:/etc/crontab
    • 系统默认的设置,位于目录:/etc/cron.*/
    • 用户定义的设置,位于文件:/var/spool/cron/用户名

8.3 管理cron计划任务

  • 编辑cron计划任务
[root@localhost mnt]# crontab -e [-u 用户名]
  • 查看计划任务
[root@localhost mnt]# crontab -l [-u 用户名]
  • 删除计划任务
[root@localhost mnt]# crontab -r [-u 用户名]

e edit,创建计划任务

-l list 列表

-r 删除

8.4 时间数值的特殊表示方法

符号解释
*表示该位置的范围内所有时间
,表示间隔的多个不连续时间点
-表示一个连续的时间范围
/n指定间隔的时间频率为n

8.5 应用实例

示例解释
0 17 1-5周一到周五每天17点
30 8 1,3,5每周一周三周五的8点30分
0 8-18/2 *每天8点到18点之间每隔两小时
0 /3每三天
[root@localhost mnt]# crontab -e"/tmp/crontab.16EW6c" 1L, 37C   '自动进入这个文件内配置''*/2 * * * *     ps aux | wc -l > /ps.txt'  '输入单引号内的配置' :wq             '保存退出'no crontab for root - using an empty onecrontab: installing new crontab[root@localhost mnt]# crontab -l    '查看计划任务'*/2 * * * * ps aux | wc -l > /ps.txt                     

九、 总结

  • 查看进程的命令(ps、top、pgrep、pstree)
  • 进程控制
    • 启动进程
    • 调度进程(Ctrl+z组合键、jobs、bg、fg)
    • 终止进程(kill、killall、pkill)
  • at命令设置计划任务
  • crontab计划任务的配置字段
进程 命令 信息 任务 用户 后台 运行 时间 内存 系统 终端 代表 程序 动态 输入 优先级 再次 前台 文件 用户名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 伟宏互联网科技 云信互联网科技有限公司 未来的互联网科技 狮子座互联网科技有限公司 北京禾田雨橡互联网科技 互联网科技网站 新华互联网科技校企合作 互联网科技公司招聘 互联网科技公司的市场部门 互联网和高科技公司 江苏南京365互联网科技 互联网企业和科技型企业 青岛科技大学互联网大赛研究生 新兴科技互联网创新大赛颁奖典礼 济南有互联网科技公司吗 半导体是互联网高科技吗 吉林省码上互联网科技电话 长沙渺峰互联网科技有限公司 保山浩联互联网科技有限公司 上海卓越科技互联网 互联网科技有限公司经营范围 西安互联网科技公司 沃里互联网科技 互联网科技公司有哪些 互联网科技扶贫时间 青海科技产业互联网发展 国大互联网教育科技有限公司薪资 山东子淼互联网科技有限公司 吉林省码上互联网科技电话
0