进程和进化任务管理

it2023-05-11  88

进程和进化任务管理

1. 查看进程和控制进程1.1 查看进程1.1.1 ps 命令——查看静态的进程统计信息1.1.2 top 动态查看进程1.1.3 pgrep 查看进程信息1.1.4 pstree 查看进程信息 2. 控制进程2.1 进程的启动方式2.2 改变进程的运行方式2.2.1 进程的前后台调度2.2.2 终止进程的运行 3. 计划任务管理3.1 at 一次性任务设置3.2 计划任务管理3.2.1 配置文件和目录3.2.2 命令

1. 查看进程和控制进程

程序是保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合,而进程 是在 CPU 及内存中处于动态执行状态的计算机程序。在 Linux 操作系统中,每个程序启动后可以创建一个或多个进程。例如,提供 Web 服务的 httpd 程序,当有大量用户同时访问Web 页面时,httpd 程序可能会创建多个进程来提供服务。

1.1 查看进程

1.1.1 ps 命令——查看静态的进程统计信息

a 显示当前终端下所有进程信息,包含其他用户进程,与“X”选项结合时显示系统中的所有进程信息

u 使用以用户为主的格式输出进程信息

x 显示当前用户在所有终端下的进程信息

-e 显示系统内的所有进程消息

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

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

[root@localhost ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 191132 4112 ? Ss 17:38 0:01 /usr/lib/systemd/systemd --switched-roo root 2 0.0 0.0 0 0 ? S 17:38 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 17:38 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 17:38 0:00 [kworker/0:0H] root 7 0.0 0.0 0 0 ? S 17:38 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 17:38 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 17:38 0:00 [rcu_sched] root 10 0.0 0.0 0 0 ? S< 17:38 0:00 [lru-add-drain]

上诉命令解释 USER 启动该进程的用户账号名称 TTY 表明该进程在那个终端上运行, “?”表示不需要终端STAT 显示了进程当前的状态,如S(休眠),R(运行),Z(僵尸),<(高优先级),N(低优先级),s(父进程),+(前台进程),对于僵尸进程要手动关闭 START 启动该进程的时间 TILE 该进程占用的CPU时间 COMMAND 启动该进程的命令名称 %CPU 占用cpu百分比 %MEM 占用内存比 VSZ 占用虚拟机内存大小(swap) RSS 占用物理内存的大小(物理内存)

1.1.2 top 动态查看进程

使用 ps 命令查看到的是一个静态的进程信息,并不能连续地反馈出当前进程的运行状态。若希望以动态刷新的方式显示各进程的状态信息,可以使用 top 命令 top 命令将会在当前终端以全屏交互式的界面显示进程排名,及时跟踪包括 CPU、内存等系统资源占用情况 默认情况下每三秒钟刷新一次,其作用基本类似于Windows 操作系统中的任务管理器

[root@localhost ~]# top top - 00:00:19 up 6:21, 1 user, load average: 0.00, 0.01, 0.03 Tasks: 187 total, 1 running, 186 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 7990280 total, 6815440 free, 669760 used, 505080 buff/cache KiB Swap: 16777212 total, 16777212 free, 0 used. 6992072 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 41 root 20 0 0 0 0 S 0.3 0.0 0:02.04 kworker/3:1 9424 mysql 20 0 1860976 206092 7440 S 0.3 2.6 0:04.69 mysqld 10343 gdm 20 0 713940 16356 9124 S 0.3 0.2 0:01.66 gsd-color 1 root 20 0 191132 4112 2604 S 0.0 0.1 0:01.57 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd

1.1.3 pgrep 查看进程信息

根据特定条件查询进程PID

pgrep -l “log” -l 显示进程名 pgrep -l -U teacher -t tty1 -U指定特定用户 -t指定终端 [root@localhost ~]# pgrep -l "log" 4434 xfs-log/dm-0 7706 xfs-log/sda1 8936 systemd-logind 8953 abrt-watch-log 8954 abrt-watch-log 9330 rsyslogd

1.1.4 pstree 查看进程信息

以树形结构列出进程信息 -p 选项使用时可以同时列出对应的PID号

-u 选项可以列出对应的用户名

-a 选项累哦列出完整的命令信息

[root@localhost ~]# pstree systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager───2*[{NetworkManager}] ├─VGAuthService ├─2*[abrt-watch-log] ├─abrtd ├─accounts-daemon───2*[{accounts-daemon}] ├─alsactl ├─at-spi-bus-laun─┬─dbus-daemon │ └─3*[{at-spi-bus-laun}] ├─at-spi2-registr───2*[{at-spi2-registr}] ├─atd ├─auditd─┬─audispd─┬─sedispatch │ │ └─{audispd} │ └─{auditd} ├─avahi-daemon───avahi-daemon

2. 控制进程

2.1 进程的启动方式

手工启动进程 手动启动:用户输入命令,直接执行程序

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

调度启动进程 在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指 定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端。 进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周一 20.65 备份数据库)的计划任务。

2.2 改变进程的运行方式

2.2.1 进程的前后台调度

Ctrl+Z组合键 将当前进程挂起,即调入后台并停止执行

jobs命令 查看后台的任务列表 jobs -l

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

bg 可以将后台暂停执行(如按Ctrl+Z组合键挂起)的任务恢复运行,继续在后台执行操作

2.2.2 终止进程的运行

Ctrl+C组合键 中断正在执行的命令

Kill,killall命令 Kill用于终止指定的PID号的进程

[root@localhost ~]# pgrep -l "httpd" 14724 httpd 14725 httpd 14726 httpd 14727 httpd 14728 httpd 14729 httpd [root@localhost ~]# kill 14724 [root@localhost ~]# pgrep -l "httpd" [root@localhost ~]#

Killall用于终止指定名称的所有进程 -9 选项用于强制终止

Pkill命令 根据特定条件终止相应的进程 常用命令选项 -U 根据进程所属的用户名终止相应的进程 -t 根据进程的终端终止相应进程

3. 计划任务管理

3.1 at 一次性任务设置

在当天的21.00时自动关闭当前系统

[root@localhost ~]# at 21.00 at> shutdown -h now at> <EOT> job 2 at Wed Oct 21 21:00:00 2020

atq 查看未执行的任务列表

[root@localhost ~]# atq 2 Wed Oct 21 21:00:00 2020 a root

atrm 删除第二条任务

[root@localhost ~]# atrm 2 [root@localhost ~]# atq [root@localhost ~]# ^C

3.2 计划任务管理

3.2.1 配置文件和目录

3.2.2 命令

crontab命令 (分 时 日 月 周)

Crontab -e (—u 用户名) ##管理crontab计划任务编辑计划任务

Crontab -l (—u 用户名)## 查看计划任务

Crontab -r (—u 用户名) ##删除任务计划 时间数值的特殊表示方式

" * " : 表示该范围内的任意时间 减号“-”:可以表示一个连续的时间范围,如“1-4”表示整数 1、2、3、4。 逗号“,”:可以表示一个间隔的不连续范围,如“3, 4, 6, 8”。 斜杠符号“/”:可以用来指定间隔频率,如在日期字段中的“*/3”表示每隔 3 天。
最新回复(0)