目录
一、查看进程
1、程序和进程的关系
(1)程序
a、保存在硬盘、光盘等介质中的可执行代码和数据
b、文件中静态保存的代码
(2)进程
a、在CPU及内存中运行的程序代码
b、动态执行的代码
c、父、子进程
d、每个程序可以创建一个或多个进程
2、查看进程信息ps
(1)ps命令
a、查看静态的进程统计信息
[root@localhost~]#ps aux
(2)查看静态的进程统计信息
[root@localhost~]#ps -elf
3、查看进程信息top
(1)top命令
a、查看动态的进程排名信息
[root@localhost~]#top
load average: 0.00, 0.01, 0.05
系统平均负载 1分钟 5分钟 15分钟
查看local average的方法:top w uptime
load average 的值在什么情况可认为是异常的? 当平均负载长时间高于CPU数量的70%时
load average 平均负载高时可能是CPU密集型进程多导致,也可能是I/O繁忙导致。
4、查看进程信息pgrep
(1)pgrep命令
a、根据特定条件查询进程PID信息
[root@localhost~]# pgrep -l"log"(-l:显示进程名却省时只输出PID号)
2538 rsyslogd
2113 mcelog
[root@localhost~]# pgrep -l - U teather -t tty2(-U:指定特定用户 -t:指定终端)
27483 bash
27584 vim
查看系统指标
CPU top vmstat sar htop atop
内存 free -m vmstat sar top cat /proc/meninfo
IO iostat(磁盘级别) iotop(进程级别) vmstat(系统级别) atop sar
磁盘容量 df -h du
进程 ps top htop atop pidstat
网卡流量 ifconfig iftop atop cat /proc/net/dev
5、查看进程树pastree
(1)pastree命令
a、以树形结构列出进程信息
二、控制进程
1、进程的启动方式
(1)手工启动
a、前台启动:用户输入命令,直接执行程序
b、后台启动:在命令行尾加入“&”符号
[root@localhost~]# cp /dev/cdrom mycd.iso&
[1]28454 (输出信息中包括后台任务序号、PID号)
运行进程:
前台运行:在命令行输入命令,直接运行
后台运行:在命令末尾追加 & 符号。默认情况下通过追加 & 后台运行的进程会随着终端的关闭而自动退出,可在命令开头位置添加 nohup(格式为nohup 命令 &),可实现后台运行的进程不会随着终端的关闭而自动退出
(2)调度启动
a、使用at命令,设置一次性计划任务
b、使用crontab命令,设置周期性计划任务
2、进程的前后调度
(1)Ctrl+Z组合键
a、将当前程序挂起,即调入后台并停止执行
(2)jobs命令
a、jobs[-l]
b、查看处于后台的任务列表
进程前后台调度
ctrl + z #将前台进程挂起暂停并调入到后台
jobs -l #查看挂起调度到后台的进程列表和序号
fg <序号> #将挂起到后台的进程调度到前台继续运行
(3)fg命令
a、将后台进程回复到前台运行,可指定任务序号
3、终止进程的运行
(1)Ctrl+C组合键
a、中断正在执行的命令
(2)kill、killallml
a、kill用于终止指定PID号的进程
b、killall用于终止指定名称相关的所有进程
c、-9选项用于强制终止
终止进程
kill <PID>
killall <进程名>
pkill <关键词> -U <用户名> -t <终端>
kill是如何杀掉进程的? 向进程发送信号的方式杀掉进程
kill 默认选项为 -15 ,发送信号 SIGTERM,表示告诉进程自行停止运行并退出,进程可以忽略
kill -9 ,发送信号 SIGKILL,表示进程要立即退出,且不能被捕捉或忽略
kill -3 ,发送信号 SIGQUIT,表示进程自行退出,并打印进程各个线程的堆栈信息,保存路径为 /proc/${pid}/cwd,文件名为 antBuilderOutput.log
kill -1 ,发送信号 SIGHUP,表示进程重新加载配置文件,不退出
三、at一次性计划任务
1、计划任务管理
(1)at命令
a、at [HH:MM] [yyyy-mm-dd]
一次性计划任务
at HH:MM [yyyy-mm-dd] --> 输入命令列表 --> ctrl + d 提交任务 --> atq 查看没执行的任务列表和序号 --> atrm <序号> 删除指定的任务
(2)案例:在当天的21:30时自动关闭当前系统
四、crontab周期性任务管理设置
1、计划任务管理crontab
(1)crontab命令
a、按照预先审定单时间周期(分钟、小时、天、月、周)重复执行用户指定的命令操作
b、属于周期性计划任务
c、主要设计文件
- 全局配置文件,位于文件:/etc/crontab
- 系统默认的设置,位于目录:/etc/cron,*/
- 用户定义的设置,位于文件:/var/spool/cron/用户名
保证这个开启
(2)管理crontab计划任务
a、编辑计划任务
crontab -e [-u 用户名] (-u缺省时默认是针对当前用户)
b、查看计划任务
crontab -l [-u 用户名]
c、删除计划任务
crontab -r [-u 用户名]
2、crontab任务配置的格式
字段 | 说明 |
分钟 | 取值为从0到59之间的任意整数 |
小时 | 取值为从0到23之间的任意整数 |
日期 | 取值为从1到31之间的任意整数 |
月份 | 取值为从1到12之间的任意整数 |
星期 | 取值为从0到7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |
(2)时间数值的特殊表示方法
a、“ * ”表示该范围内的任意时间
b、“,”表示间隔的多个不连续时间点
c、“-”表示一个连续的时间范围
d、“ / ”表示间隔的时间评率
(3)应用展示
a、0 17 * * 1-5 周一到周五每天17:00
b、30 8 * * 1,3,5 每周一,三,五的8:30分
c、0 8-18/2 * * * 8点到18点之间每2小时
d、0 * */3 * * 每三天
crontab -l [-u 用户] #查看计划任务列表
crontab -r [-u 用户] #清空任务列表