Linux进程的查看和管理(包含计划任务管理)

Linux进程的查看和管理(包含计划任务管理)

概述:

进程的定义:“进程”是操作系统的最基本、最重要的概念之一, 进程是程序的一次执行。进程是可以并行执行的计算。

进程的特征:动态性:是程序的一次执行;并发性:进程是可以并发执行;独立性:是系统进行资源分配和调度的一个独立单位;异步性:进程间的相互制约,使进程执行具有间隙;结构性:进程是具有结构的 。

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

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

本章基本结构:
在这里插入图片描述

一,查看进程

1.1,查看进程-----------ps命令(静态查看)

常用选项

a:显示当前终端下的所有进程信息

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

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

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

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

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

例如:使用ps aus命令能以简单列表的形式显示出进程信息
在这里插入图片描述
列表标题含义如下

USER: 用户

PID: 进程号

%CPU: CPU占用比

%MEM: 内存占用比

VSA: 虚拟内存占用比

RSS: 物理内存占用比

TTY: 终端

STST: 状态

START: 启动进程时间

TIME: 该进程占用的CPU时间

COMMAND: 启动该进程的命令名称

例如:使用ps -elf命令以长格式显示系统中的进程信息,包含PPID号(PID的父进程)

 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 13:54 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --syst
1 S root          2      0  0  80   0 -     0 kthrea 13:54 ?        00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 13:54 ?        00:00:00 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 13:54 ?        00:00:00 [kworker/0:0H]
1 S root          6      2  0  80   0 -     0 worker 13:54 ?        00:00:00 [kworker/u256:0]
1 S root          7      2  0 -40   - -     0 smpboo 13:54 ?        00:00:00 [migration/0]
1 S root          8      2  0  80   0 -     0 rcu_gp 13:54 ?        00:00:00 

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

[root@localhost ~]# ps
   PID TTY          TIME CMD
  3344 pts/0    00:00:00 bash
  3798 pts/0    00:00:00 ps
[root@localhost ~]# 

1.2,查看进程-------top命令(动态查看每3s自动刷新一次)
在这里插入图片描述
如上图按C可以对%CPU从大到小进行排序

按M可以对%MEM从大到小进行排序

1.3,查看进程--------pgrep命令

常用选项:

-l:若不加只显示PID号

-U:指定用户

-t:指定终端

例如:pgrep -l -t pts/0 可以显示root用户在pts/0终端下的进程

[root@localhost ~]# pgrep -l -t pts/0 
3344 bash
38869 su
38870 bash
38918 su
38926 bash
[root@localhost ~]# 

1.4,查看进程-------pstree命令(以树形结构列出进程信息)

常用格式:pstree -aup

-a:显示完整信息

-u:列出对应用户名

-p:列出对应PID号

[root@localhost ~]# pstree -aup
systemd,1 --switched-root --system --deserialize 21
  ├─ModemManager,568
  │   ├─{ModemManager},585
  │   └─{ModemManager},627
  ├─NetworkManager,657 --no-daemon
  │   ├─dhclient,38513 -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf...
  │   ├─{NetworkManager},662
  │   └─{NetworkManager},665
  ├─VGAuthService,574 -s
  ├─abrt-watch-log,569 -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG atlist_del co
  ├─abrt-watch-log,599 -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD
  ├─abrtd,563 -d -s
  ├─accounts-daemon,566
  │   ├─{accounts-daemon},580
  │   └─{accounts-daemon},626
..// 省略部分类容

二,管理控制进程

2.1,启动进程

启动进程的方式:手工启动,调度启动

手工启动--------cp命令

前台启动(输入命令直接执行)

后台启动(在命令尾行加“&”符号,被执行文件较大时使用)

[root@localhost ~]# cp /dev/cdrom mycd.ios&
[2] 39545

调度启动------at命令,crontab命令

at:一次性启动,

启动方式:设置时间(时间只能在当前时间之后)----》》输入命令----》》ctrl+D提交任务

时间设置:at [小时:分钟] [年月日]

date:查看当前时间

例如
在这里插入图片描述
crontab命令:按照之前设置的时间周期重复执行用户指定的命令操作

常用格式

编辑计划任务:crontab -e [-u 用户名]

查看计划任务:crontab -l [-u 用户名 ]

删除计划任务:crontab -r[-u 用户名]

时间周期设置顺序

分钟 小时 日期 月份 星期

启动方式: crontab -e进入编辑 ---------周期设置 所需执行命令--------wq保存

例如

[root@localhost ~]# crontab -e -u root

在这里插入图片描述
时间数值的特殊表示方法

*表示该范围内的任意时间

, 表示间隔的多个不连续时间点

- 表示一个连续的时间范围

/ 指定间隔的时间频率

例如:

0 17 * * 1-5 -------------------- 周一到周五每天17:00

0 8-18/2 * * * ------------------ 8点到18点之间每2个小时

0 * */ * * ------------------------- 每3天

2.2,终止进程

atrm #序列号

删除序列号任务

Ctrl+c 组合键

中断正在执行的命令

kill、killall命令

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

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

-9 用于强制终止

pkill命令

常用选项

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

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

例如:

[root@localhost ~]# pgrep -l -U zhangsan(查看zhangsan用户进程)
6469 gnome-keyring-d
6474 gnome-session-b
6481 dbus-launch
6482 dbus-daemon
[root@localhost ~]# pkill -9 -U zhangsan(杀死zhangsan用户的进程)
[root@localhost ~]# pgrep -l -U zhangsan(再次查看zhangsan用户的进程)
[root@localhost ~]# 
发布了43 篇原创文章 · 获赞 56 · 访问量 7925

猜你喜欢

转载自blog.csdn.net/weixin_42953006/article/details/103043163