Linux进程和计划任务管理

本文介绍了Linux系统中程序与进程的区别,以及如何使用ps、ps-elf命令查看进程信息,包括进程状态、内存使用等。另外,提到了top命令用于实时监控动态进程,以及pgrep、pstree用于查找和查看进程关系。此外,文章还讨论了jobs命令管理后台任务和kill、killall终止进程的方法。最后,讲解了crontab用于设置周期性任务的用法和配置格式。

一、程序和进程

程序:保存硬盘、光盘等介质中的可执行代码和数据;文件中静态保存的代码

进程:在CPU及内存中运行的程序代码;动态执行的代码;父子进程;每个程序可以创建一个或者多进程

线程与进程有什么区别:是程序的副本,就是把进程复制了一份,
只复制了进程的部分代码。真正执行的是线程而不是进程。相当于是进程的打工仔

查看进程信息

ps命令

  • ps命令
    ps -aux

常用选项

-a:显示终端上的所有进程,包括其它用户的进程。
-u:表示列出进程的用户
-x:显示所有终端的进程。

[root@192 ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.3 128164  6828 ?        Ss   21:35   0:00 /usr/lib/systemd/systemd 
USER:进程的用户
PID:进程的ID
%CPU:进程占用的CPU百分比
%MEM:占用内存的百分比
VSZ:该进程使用的虚拟内存量(KB)
RSS:该进程占用的物理内存量(KB)
TTY:启动进程的终端名。不是从终端启动的进程则显示为?
**STAT:该行程的状态(D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;**z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
START:该进程被触发启动时间
TIME:该进程实际使用CPU运行的时间
COMMAND:进程的启动命令

 

 

ps -elf 命令

ps -elf
-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息

[root@192 ~]# 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 - 32041 ep_pol 21:35 ?        00:00:00 /usr/lib/syste
 
F:内核分配给进程的系统标记
S:进程的状态
UID:启动这些进程的用户
PID:进程的进程ID
PPID:父进程的进程号(如果该进程是由另一个进程启动的)
C:进程生命周期中的CPU利用率
PRI:进程的优先级(越大的数字代表越低的优先级)
NI:谦让度值用来参与决定优先级
ADDR:进程的内存地址
SZ:假如进程被换出,所需交换空间的大致大小
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
STIME:进程启动时的系统时间
TTY:进程启动时的终端设备
TIME:运行进程需要的累计CPU时间
CMD:进程的启动命令

 

查看动态进程

top 命令(查看动态进程信息)
top常用命令:
P键:根据CPU使用百分比大小进行排序
M键:根据驻留内存大小进行排序
N键:根据启动时间进行排序
c键:切换显示命令名称和完整命令行
h键:可以获得 top程序的在线帮助信息
k键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程
q键:退出 top 程序
数字1键:显示CPU个数和状态
 

 

top行:任务队列信息


18:54:31 系统时间
up 4:37系统已运行时长
3 user 当前用户登录数
load average 0.00,0.07,0.07 系统负载,单位时间内系统处理的任务数,这三个数分别为1分钟,35分钟,21分钟前到现在的平均值

Tasks行:进程信息


total:总进程数
running:正在运行的进程数
sleeping:休眠进程数
stopped:中止的进程数
zombie:僵尸无响应进程数

%CPU行:CPU的信息


us:用户占用
sy:内核占用
ni:优先级调度占用
id:空闲cpu
wa:I/O等待占用
hi:硬件中断占用
si:软件中断占用
st:虚拟化占用
注意:要想了解空闲的CPU百分比,主要看%id部分

Mem行:内存占用信息


total:总内存空间
used:已用内存
free:空闲内存
buffers:缓冲区域

Swap行:交换空间信息


total:总交换空间
free:空闲交换空间
used:已用空间交换
avail Mem:可用物理空间

pgrep 命令

根据特定条件定向查找进程PID

  1. pgrep -l "log" #-l:显示进程名,缺省时只输出PID号

  2. pgrep -l -U gcc -t tty2 #--U:指定特定用户 -t:指定终端

查看进程树pstree

以树形结构更加直观的判断出各进程之间的相互关系,结合 “-p” 可以列出对应的PID号, “-u” 可以列出各进程用户名, “-a ” 列出完整的命令信息

pstree -aup

 

jobs命令


查看处于后台的任务列表

常用的参数

-l:选项可以同时显示该进程对应的PID号

将后台的进程恢复运行
使用 bg(BackGround,后台)命令,可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作;
使用 fg 命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。
除非后台中的任务只有一个,否则 bg 和 fg 命令都需要指定后台进程的任务编号作

为参数。 


终止进程执行


当用户在前台执行某个进程时,可以按Ctrl+C组合键强制进行中断(如命令长时间没有响应的情况下)。


中断前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令。当按 Ctrl+C 组合键无法终止程序或者需要结束在其他终端或后台运行的进程时, 可以使用专用的进程终止工具 kill、killall
 

使用 kill 命令终止进程


通过 kill 命令终止进程时,需要使用进程的 PID 号作为参数。无特定选项时,kill 命令将给该进程发送终止信号并正常退出运行,若该进程已经无法响应终止信号,则可以结合“-9”    选项强行终止进程。强制终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已时不要轻易使用“-9”选项。

使用 killall 命令终止进程 


使用 killall 命令可以通过进程名称来终止进程,当需要结束系统中多个相同名称的进程时,使用 killall 命令将更加方便,效率更高。killall 命令同样也有“-9”选项。
 

crontab周期性任务设置


牢记:时间周期(分、时、日、月、周)

重复执行用户指定的命令操作,是属于周期性计划任务

主要的配置文件


全局配置文件:文件位于:/etc/crontab
系统默认的设置:目录位于:/etc/cron.*/
用户定义设置。文件位于:/var/spool/cron/用户名

管理计划任务

编辑: -e 【-u 用户名】
查看: -l 【-u 用户名】
删除: -r 【-u 用户名】
注意:如果 -u 不存在就默认为当前用户

计划任务的配置格式

字段说明
分钟0 到 59 任意整数
小时0 到 23 任意整数
日期1 到 31 任意整数
月份1 到 12 任意整数
星期0 到 7 任意整数,0和7表示星期日

示例:
每1分钟执行: /1 * * * *
每五分钟执行: /5 * * * *

每小时执行: * 0 * * *
每天上午7点执行:0 7 * * *

### Linux 系统中的进程管理计划任务管理 Linux 系统中,进程计划任务是系统管理的重要组成部分。以下是关于进程管理计划任务管理的详细介绍。 #### 进程管理 进程是程序在运行时的实例,是操作系统进行资源分配的基本单位。Linux 提供了多种命令来查看、启动、终止进程。 - **查看进程信息** - 使用 `ps` 命令可以查看静态的进程统计信息[^1]。 ```bash ps aux ``` - 使用 `top` 命令可以实时监控系统的进程状态[^1]。 ```bash top ``` - 使用 `pgrep` 命令可以根据进程名查找进程 ID。 ```bash pgrep process_name ``` - 使用 `pstree` 命令可以以树状图的形式显示进程之间的关系[^1]。 ```bash pstree ``` - **手工启动与调度进程** 在 Linux 中,可以通过命令行启动进程,并将其置于前台或后台运行。 - 启动后台进程时,可以在命令后添加 `&` 符号。 ```bash command & ``` - 使用 `fg` 命令将后台进程切换到前台运行[^1]。 ```bash fg ``` - **终止进程** - 使用 `pkill` 命令可以通过进程名或其他属性终止进程。 ```bash pkill process_name ``` #### 计划任务管理 计划任务允许用户在指定的时间执行特定的任务。Linux 中常用的计划任务工具包括 `at` `crontab`。 - **`at` 命令** - `at` 命令用于一次性计划任务的创建[^4]。 ```bash at now + 5 minutes ``` 输入需要执行的命令后按 `Ctrl+D` 结束输入。 - **`crontab` 命令** - `crontab` 是周期性计划任务的主要工具,支持按分钟、小时、日、月、周等时间单位设置任务[^4]。 - 添加计划任务:使用 `crontab -e` 编辑用户的计划任务列表。 ```bash crontab -e ``` - 查看当前用户的计划任务:使用 `crontab -l`[^2]。 ```bash crontab -l ``` - 清空所有计划任务:使用 `crontab -r`[^2]。 ```bash crontab -r ``` - **`systemd` 的定时任务管理** 在现代 Linux 发行版(如 CentOS 7 或更高版本)中,`systemd` 提供了一种更强大的计划任务管理方式——定时器(Timer)。相比传统的 `cron`,`systemd` 定时器具有更高的灵活性可靠性[^4]。 - 创建定时任务: 1. 编写服务文件 `/etc/systemd/system/mytask.service`。 ```ini [Unit] Description=My Task [Service] ExecStart=/path/to/command ``` 2. 编写定时器文件 `/etc/systemd/system/mytask.timer`。 ```ini [Unit] Description=Run My Task Daily [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target ``` 3. 启用并启动定时器。 ```bash systemctl enable mytask.timer systemctl start mytask.timer ``` #### 总结 Linux 系统提供了丰富的工具来管理监控进程计划任务。对于进程管理,常用命令包括 `ps`、`top`、`pgrep`、`pstree`、`pkill` 等;对于计划任务管理,可以选择传统工具 `crontab` 或现代工具 `systemd` 定时器。根据实际需求选择合适的工具可以提高工作效率。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值