携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
进程和线程
查看静态的进程和统计信息
线程和进程的区别
- 定义不一样,进程是执行中的一段程序,而一个进程中执行中的每个任务即为一个线程
- 一个线程只可以属于一个进程,但一个进程能包含多个线程
- 线程无地址空间,它包含在进程的地址空间里
- 线程的开销或代价比进程的小
静态查看
ps命令
常用选项
- a:显示当前终端下的所有进程信息,包括其他用户的进程,包括其他用户的进程。
- u:使用以用户为主的格式输出进程信息
- x:显示当前用户在终端下的进程信息
- e:显示系统内的所有进程信息
- l:使用长格式显示进程信息
- k|--sort属性:对属性排序,属性前加-表示降序排列。
ps -aux
-
-a :显示终端上的所有进程,包括其他用户的进程
-
-u:表示列出进程的用户名
-
-x:显示所有终端的额进程
五种进程状态
-
d 不可中断的休眠状态
-
z 僵尸进程状态
-
r 运行状态
-
s 可中断的休眠状态
-
T 停止状态
ps -aT :显示所有线程 以及pid号
ps -elf
-
-e 显示系统内所有进程信息
-
-l 以长格式显示进程信息
-
-f 以完整形式显示进程信息
-
-a 显示所有的进程pid
-
-T:查看线程信息
动态查看
动态查看动态进程排名信息
top 命令
-d:指定每两次屏幕信息刷新之间的时间间隔。
-p:通过指定监控进程ID来仅仅监控某个进程的状态。
-q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
-S:指定累计模式。
-s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
-i:使top不显示任何闲置或者僵死进程。
-c:显示整个命令行而不只是显示命令名。
进入top界面
[root@localhost ~]#top -d 5 #每五秒刷新一下
top 界面进行交互的命令
-
c键 完整命令
-
p键 加进程号 可用中止进程
-
M键:根据驻留内存大小进行排序
-
N键:根据启动时间进行排序
-
H键:可以获得top程序的在线帮助信息
-
按q或者ctrl + c 中止top命令
top -H: 显示所有线程,以及pid号
平均负载
负载值大于等于CPU数量的时候是饱和状态
平均负载是系统平均活跃进程数
如果大于等于CPU数百分之七八十的时候,说明很忙碌
大于CPU数的时候说明负荷了,需要考虑加CPU了
pgrep
查看进程信息(进程名,用户,终端)查进程
pgrep -l 显示完整的进程名
pgrep -U 产看指定用户进程
pgrep -t 查看指定终端
#### pstree
以树状结构查看进程
pstree -aup
-a 显示完整信息
-u 列出对应用户名
-p 列出对应PID号
以树形结构列出树形信息
进程的启动方式
手工启动
- 前台启动:用户输入命令,直接执行程序(可能会占用前台终端)
- 后台启动:在命令行尾加入“$"符号
进程的前后台调度
- ctrl+Z 组合键(将当前进程挂起,即调入后台并停止执行)
- jobs命令
- jobs -l
- 查看处于后台的任务列表
- fg命令
- 将后台进程恢复到前台运行,可指定任务序号
- fg<序号>
ctrl +Z 将进程挂起
jobs -l 查看处于后台的进程
fg 1 将后台程序恢复到前台
调度启动
- 使用at命令,设置一次性计划任务
- 使用crontab命令,设置周期性任务
at
一次性任务
at : 10:35 2022-5-12 at 指定时间编辑任务
ctrl + D 提交任务
crontab
-
周期性计划任务
-
按照预先设置的时间周期重复执行用户指定的命令操作
-
主要设置文件
全局配置文件,位于文件:/etc/crontab 系统默认的位置,位于文件:/etc/cron.*/ 用户定义的位置,位于文件: /var/spool/cron/ 用户名systemctl start crond 开启crond服务
crondtab -e -u 指定用户编辑计划任务
- -e 编辑计划任务
- -l 查看计划任务
- -r 清空计划任务(慎用,清空所有计划任务)
crontab任务配置的格式
例子 每周一早上7:50自动清空FTP服务器 “/var/ftp/pub”中数据
中止进程的运行
- ctrl + C 组合键
- 中止前台进程的运行
- kill , killal命令 kill用于中止指定PID号的进程(默认后面跟 15 kill 15) killal用于指定名称相关的所有进程(有可能会误杀)(杀的更干净) -9选项用于强制终止
kill
kill 和 kill -9 的区别 有时候kill 需要杀一个进程 ,但是杀不动, 就需要kill -9 强杀 kill -15代表信号是SIGTERM,告诉你进程需要被关闭,请自动停止并推出 kill -9代表信号是SIGKILL,表示进程被中止,需要立即退出,并且不能被忽略
- kill [pid号]
- killall [进程名字]
- kill -9 强杀(慎用)
pkill
pkill [进程名] 根据进程去杀
pkill -U <用户> -t<终端>
- 根据指定条件中止相应的进程
- 常用命令选项
- -U:根据进程所属的用户名中止相应进程
- -t:根据进程所在的终端中止相应程序
pkill -9 -U <用户>
总结
- 查看进程(ps,top, pgrep,ptree)
- 进程控制(启动进程,调度进程,终止进程)
- at命令设置一次性计划任务
- crontab设置周期性计划任务