程序和进程的关系
- 程序
- 保存在硬盘、光盘等介质中的可执行代码和数据
- 静态保存的代码
- 进程
- 父、子进程
查看系统进程信息-ps命令
# yum provides pstree //查询pstree命令属于哪个程序包
# yum provides */pstree
ps 静态展示
a:所有与进程有关的进程
u:以用户为主的格式显示进程信息
x:所有与终端无关的进程
VSZ:虚拟内存
RSS:物理内存
STAT:S-休眠 R-运行 Z-僵死 <-高优先级 N-低优先级 s-父进程 +-前台进程 l-多线程 T停止
TIME:进程占用cpu的时间
VIRT:占用swap内存大小
PR:优先级
RES:占用物理内存大小
SHR:共享内存大小,两个进程间通信时所需
START :开启时间
查找某个进程常用命令:
#ps aux | grep "bash"
ps aux | wc -l 统计有多少进程
top 查看进程信息命令
各进程(任务)的状态监控属性解释说明:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
#top -d 1 //一秒钟刷新一次
pgrep 根据条件查询进程信息
pgrep命令
根据特定条件查询进程 PID 信息
#pgrep -lu root //查看root用户开启的进程与PID
#pgrep -l -U zhangsan -t tty1 //指定张三用户在tty1终端下运行的进程
4.pidof
#pidof sshd //查看sshd进程的PID
pstree树形结构查看进程
pstree //树形结构查看进程,主要展示了进程与进程之间的关系。
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID号
#pstree -aup //查看进程树详细信息
#pstree -aup root //查看root用户打开的进程
进程控制
cp /dev/cdrom aa.iso & //将此命令过程调入后台执行
jobs -l // 查看后台程序及其编号
fg 1 //将后台程序编号为1的调入前台
bg 1 //将后台程序编号为1的任务恢复启动
终止进程
#pgrep -l "sshd" //查询sshd的PID
#ps aux | grep "sshd" //更加详细的查看PID
#kill 2888 //将查询到的PID进行执行操作
#pgrep -l "sshd" //再次查看时,没有信息
选项 -9 //强制杀死进程,
如:使用vim打开一个文件,使用Ctrl+z挂起后无法使用kill杀死,则需-9选项
3.killall //使用进程名结束进ki程
killall -9 vim //结束vim的所有进程
4.pkill //根据进程名称、运行该进程的用户、进程所在终端进行终止进程
-U //指定用户
-t //指定终端
#pgrep -lu "zhangsan" //查看张三所开启的进程
#pkill -9 -U "zhangsan" //强制结束用户张三所有进程
计划任务管理-at命令
at命令
一次性计划任务
at [HH:MM] [yyyy-mm-dd]
atq //查看未执行的任务列表
atrm 2 //删除第二条任务
crontab命令
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -I [-u 用户名]
删除计划任务
crontab -r [-u 用户名] //删除整个任务计划项目
时间数值的特殊表示方法
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
应用示例
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每2小时.分钟数的0 不能写为*
0 * */3 * * 错误,每3天,每小时执行一次