一: 程序和进程的关系
1、 程序
保存在硬盘、光盘等介质中的可执行代码和数据
静态保存的代码
2、 进程
在CPU及内存中运行的程序代码
动态执行的代码
父、子进程
- 每个进程可以创建一个或多个进程
3、程序、进程、线程之间的三者关系
一个应用程序可以包含一个或多个应用进程
一个进程包含一个或多个线程
线程是执行操作的最小单元
例子:
应用程序=工厂
进程=车间
线程=工人
高并发处理依赖于多线程操作
二 :查看静态进程信息 ps
2.1 ps 命令
直接执行不带任何子选项的命令时,将只显示当前用户会话中打开的进程
[[email protected] ~]# ps
PID TTY TIME CMD
4898 pts/1 00:00:00 bash
5249 pts/1 00:00:00 ps
2.2 ps aux 命令
查看静态的进程统计信息
选项含义
-a 显示当前终端下的所有进程信息,包括其他用户的进程。与x结合时将显示系统中所有的进程信息 不带-
-u 使用已用户为主的格式输出进程信息,不带-
-x 显示当前用户在所有中终端下的进程信息,不带-
-e 显示系统中的所有进程信息
-l 使用长格式(long)显示进程信息
-f 使用完整的(full/)格式显示进程信息
竖着读的一列叫做字段,也叫做属性
2.3 ps elf命令
查看静态的进程统计信息
注意一下,通常情况下,我们使用ps -aux ,ps -elf不常用
三 :查看动态进程信息 top
top命令
查看动态的进程排名信息
在top查看过程中,可以按c键根据cpu占用情况对进程列表进行排序,按M可以根据MEM内存占用情况进行排序,按h获得帮助信息,按q退出top程序,按k就是关闭进程(kill),通常情况下k中会有当前占用内存最高的pid在其中,默认直接关闭,也可以输入对应的pid去回车终止对应的进程
动态top查看主要看cpu占用
提示:安全加固的服务器长时间不使用会掉线,可以敲入top命令保持在线状态
四 :查看进程信息 pgrep
pgrep命令
根据特定条件查询进程PID信息
pgrep pid进程的过滤
-l 长格式显示,即显示进程名
-U 指定特定用户,检索查询该用户的进程
-t 指终端(telent ) tty1 代表远程终端
本地终端登录时会反馈为1
五: 查看进程信息 pstree
以树形结构列出进程信息
-a 显示完整信息
-u 列出对应用户名
-p 列出对应PID号
六 : 进程的启动方式
6.1 手工启动
前台启动:用户输入命令,直接执行程序
后台启动;在命令行尾加入“&(读end)”符号,后台启用是为了防止文件过大会影响正常使用系统,这时就要去后台启用
6.2 调度启动(at、crontab)
使用at命令,设置一次性计划任务
使用crontab命令,设置周期性计划任务
6.3 进程的前后台调度
Ctrl+Z 组合键
将当前进程挂起,即调入后台并停止执行
jobs 命令
查看处于后台的进程列表
fg命令
将后台进程恢复到前台运行,可通过指定任务序号去选中
bg命令
将后台中的暂停执行的程序恢复运行,在后台进行接下来的操作
七: 终止进程的运行
7.1 Ctrl+c 组合键
中断正在执行的命令
7.2 kill、killall 命令
kill用于终止指定PID号的进程 kill pid
killall用于终止指定名称的所有进程 killall 进程
-9 选项用于强制终止
7.3 pkill命令
根据特定条件终止相应的进程
常用命令选项
-U:根据进程所属的用户名终止相应进程
-t :根据进程所在的终端终止相应进程
pkill -9 -U 代表强行注销用户
普通用户不可以踢掉pkill root
八、 计划任务管理 at、crond
8.1 at命令
一次性计划任务
这个命令的时间必须是当前时间之后
date 获取当前系统时间
at>后面跟在未来的这个时间要执行的命令
eot 就是按ctrl +D键提交任务
也可以atq查看 ,查看将要指定的执行任务的列表
案例:在当天的21:30时自动关闭当前系统atrm 删除 计划任务
8.2 crontab命令
按照预先设置的时间周期(分时日月周)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名
8.3 管理crontab计划任务
编辑crontab计划任务
crontab -e 创建任务
crontab -l 查看任务
crontab -r 清空任务
8.4应用实例