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 ~]#