目录
一 查看进程
1.1 程序和进程的关系
-
程序
保存在硬盘、光盘等介质中的可执行代码和数据
静态保存的代码 -
进程
在CPU及内存中运行的程序代码
动态执行的代码
父、子进程(每个程序可以创建一个或多个进程)
1.2 查看进程信息ps
- ps命令
查看静态的进程统计信息
a:显示当前终端下所有进程信息,包含其他用户进。
u:使用以用户为主的格式输出进程信息
x:显示当前用户在所有终端下单进程信息
e:显示系统内的所有进程信息
l :使用长格式显示进程信息
f:使用完整的格式显示进程信息
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 5.3 0.0 43400 3748 ? Ss 09:33 0:01 /usr/lib/syste
root 2 0.0 0.0 0 0 ? S 09:33 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 09:33 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 09:33 0:00 [kworker/0:0]
root 5 0.0 0.0 0 0 ? S< 09:33 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 09:33 0:00 [kworker/u256:
root 7 0.0 0.0 0 0 ? S 09:33 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 09:33 0:00 [rcu_bh]
root 9 0.3 0.0 0 0 ? S 09:33 0:00 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 09:33 0:00 [lru-add-drain
root 11 0.0 0.0 0 0 ? S 09:33 0:00 [watchdog/0]
root 12 0.0 0.0 0 0 ? S 09:33 0:00 [watchdog/1]
root 13 0.0 0.0 0 0 ? S 09:33 0:00 [migration/1]
root 14 0.0 0.0 0 0 ? S 09:33 0:00 [ksoftirqd/1]
root 15 0.0 0.0 0 0 ? S 09:33 0:00 [kworker/1:0]
root 16 0.0 0.0 0 0 ? S< 09:33 0:00 [kworker/1:0H]
root 17 0.0 0.0 0 0 ? S 09:33 0:00 [watchdog/2]
root 18 0.1 0.0 0 0 ? S 09:33 0:00 [migration/2]
root 19 0.0 0.0 0 0 ? S 09:33 0:00 [ksoftirqd/2]
root 20 0.0 0.0 0 0 ? S 09:33 0:00 [kworker/2:0]
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 1 80 0 - 47716 ep_pol 09:33 ? 00:00:01 /us
1 S root 2 0 0 80 0 - 0 kthrea 09:33 ? 00:00:00 [kt
1 S root 3 2 0 80 0 - 0 smpboo 09:33 ? 00:00:00 [ks
1 S root 4 2 0 80 0 - 0 worker 09:33 ? 00:00:00 [kw
1 S root 5 2 0 60 -20 - 0 worker 09:33 ? 00:00:00 [kw
1 S root 6 2 0 80 0 - 0 worker 09:33 ? 00:00:00 [kw
1 S root 7 2 0 -40 - - 0 smpboo 09:33 ? 00:00:00 [mi
1 S root 8 2 0 80 0 - 0 rcu_gp 09:33 ? 00:00:00 [rc
1 S root 9 2 0 80 0 - 0 rcu_gp 09:33 ? 00:00:00 [rc
1 S root 10 2 0 60 -20 - 0 rescue 09:33 ? 00:00:00 [lr
5 S root 11 2 0 -40 - - 0 smpboo 09:33 ? 00:00:00 [wa
5 S root 12 2 0 -40 - - 0 smpboo 09:33 ? 00:00:00 [wa
1 S root 13 2 0 -40 - - 0 smpboo 09:33 ? 00:00:00 [mi
1 S root 14 2 0 80 0 - 0 smpboo 09:33 ? 00:00:00 [ks
1.3 查看进程信息top
- top命令
查看动态的进程排名信息
[root@localhost ~]# top
top - 09:35:24 up 1 min, 1 user, load average: 0.25, 0.21, 0.09
Tasks: 218 total, 1 running, 217 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3861520 total, 3066572 free, 596060 used, 198888 buff/cache
KiB Swap: 16777212 total, 16777212 free, 0 used. 3022456 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9787 daemon 20 0 506352 7564 804 S 0.3 0.2 0:00.04 httpd
1 root 20 0 190864 3800 2564 S 0.0 0.1 0:01.18 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd+
4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0+
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0+
6 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration+
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.10 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-d+
11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration+
14 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd+
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/1+
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1+
1.4 查看进程信息pgrep
- pgrep 命令
根据特定条件查询进程PID信息
-l :显示进程名
-U:指定特定用户
-t :指定终端
pgrep -l "log"
----------------------------------------------------------
pgrep -l -U teacher -t tty1
1.5 查看进程信息pstree
- pstree 命令
以树形结构列出进程信息
-a :显示完整信息
u:列出对应用户名
p:列出对应PID号
pstree -aup
-------------------------------------
pstree -ap teacher
二 控制进程
2.1 进程的启动方式
- 手工方式
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号
cp /dev/cdrom mycd.iso &
- 调度启动
使用at命令,设置一次性计划任务
使用crontab命令,设置周期性计划任务
2.2 进程的前后台调度
- ctrl+Z组合键
将当前进程挂起,即调入后台并停止执行 - jobs 命令
查看处于后台的任务列表 - fg命令
将后台进程恢复到前台运行,可指定任务序号
jobs
-------------------------
fg 1
2.3 终止进程的运行
-
ctrl+C组合键
中断正在执行的命令
■ kill、killall命令
kill用户终止指定PID号的进程
killall用户终止指定名称的所有进程
-9选项用户强制终止 -
pkill命令
根据特定条件终止相应的进程
常用命令选项
-U 、-t
pgrep -l -U “hackli”
pkill -9 -U "hackli"
pgrep -l -U "hackli"
三 计划任务管理
3.1 计划任务管理at命令
- at命令
一次性计划任务
at [HH:MM] [yyyy-mm-dd]
3.2 计划任务管理crontab命令
-
crontab命令
按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件 -
全局配置文件,位于文件:/etc/crontab
-
系统默认的设置,位于目录:/etc/cron.*/
-
用户定义的设置。位于文件:/var/spool/cron/用户名
-
管理crontab计划任务
- 编辑计划任务
crontab -e [-u 用户名] - 查看计划任务
crontab -l [-u 用户名] - 删除计划任务
crontab -r [-u 用户名]
- 编辑计划任务
3.3 crontab任务配置的格式
字段 | 说明 |
---|---|
分钟 | 取值为0到59之间的任意整数 |
小时 | 取值为0到23之间的任意整数 |
日期 | 取值为1到31之间的任意整数 |
月份 | 取值为1到12之间的任意整数 |
星期 | 取值为0到7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |
-
时间数值的特殊表示方法
”*“表示该范围内的任意时间
”,“表示间隔的多个不连续时间点、
”-“表示一个连续的时间范围
”/“指定间隔的时间频率 -
应用示例
*0 17 * * 1-5 ##周一到周五每天17:00
30 8 * * 1,3.5 ##每周一、周三、五的8点30分
0 8-18/2 * * * ##8点到18点之间每2小时
0 * /3 * * ##每三天
四 附带实验
4.1 at命令一次性计划任务实验
[root@localhost ~]# date #############查看时间
2020年 10月 30日 星期五 14:33:52 CST
[root@localhost ~]# at 14:50 2020-10-30 ##############设置一次性的执行时间
at> pgrep -U root |wc -l >/opt/root.txt<EOT> #########查看指定用户命令有多少行,查看有多少行在把重定向到/opt/root.txt里,键盘ctrl+d ctrl+d
job 7 at Mon Jul 20 14:50:00 2020
[root@localhost ~]# atq ###############33查看刚刚的计划任务还有多久执行
7 Mon Jul 20 14:50:00 2020 a root
在当天的21:30时自动关闭当前系统
4.2 crontab任务实验
实验要求:每两分钟向阿里云时间同步一次,然后重定向到/var/log/natdate.log文件里
crontab -e