架构师养成记--27.程序和进程的概念
程序是静态概念,本身作为一种软件资源长期保存;而进程是程序执行的过程,它是动态的,是有一定什么周期的,是动态产生和消亡的。一个程序可以有多个进程共用,一个进程在活动中也可顺序执行若干个程序。他们没有认识关系。
在linux系统中,分为前台进程和后台进程,前台进程意思就是当一个命令执行的过程中,不允许其他的命令执行,我们之前所学习的常用命令基本上都是前台进程。
比如我们查找一个文件:find / -name init 在这个命令执行中其他命令是不可以执行的。
而后台进程则运行多个进程一起同步执行:只需要在最后加上“&”,即表示为后台进程(注意后台进程是不能交互执行的,比如ping命令等)
进程管理命令
命令:w(who)
描述:查看用户信息
TTY:表示以什么方式登录这台计算机(pts/0 远程登录)
FROM:表示从什么位置登录的。
LOGIN@:表示登录时间、
IDLE:表示用户闲置的时间。
JCPU:表示当前这个用户执行所有进程耗时总和
PCPU:表示执行程序耗费的时间
load avegage : 表示系统的负载值,分别显示过去的1、5、15分钟系统的负载程度,如果是想知道系统的平均负载,三者之和除以3即可,最终结果在0.8以下表示正常,如果达到几十或上百,那么系统负载非常高,可能无法响应任何命令
WHAT : 表示当前执行的什么任务。
命令:ps(process status)
-a:显示所有用户的进程
-l:长格式显示
STAT:当前状态 S休眠; D不可中断的休眠状态;R运行状态; Z僵死状态; R停止
UID : 表示当前启动进程的用户
PID : 进程号
PPID:父进程号
TTY:进程启动的终端
IN:进程的优选级
TIME:进程启动以来占用的实际时间
CMD:进程的命令
其他选项
-u:显示用户名和启动时间
-x:显示没有控制终端的进程
-e:显示所有进程,包括没有控制终端的进程
-w:宽宏显示,可以使用多个w进行价款显示
杀死进程
该进程占用了过多的CPU时间
该进程锁住了一个终端,使其他前台进程无法运行
运行时间过长,没有预期效果
成为了系统负载主要负担
无法正常退出
。。。。
命令:kill [进程号] 关闭进程 kill 1234
kill -9 [进程号] 强制关闭进程
kill -1 [进程号] 重庆进程
xkill 关闭图形程序
killall 结束所有进程
查找服务进程号:pgrep [服务名称]
关闭进程:pkill [进程名]
命令:nohup
语法:nohup program &
描述:是进程在用户退出登录后仍旧继续执行
终止一个程序的运行 : ctrl + c
挂起一个程序的运行:ctrl + z
命令:jobs
语法:jobs
把任务恢复到前台执行 fg [任务编号]
把任务恢复到后台执行 bg 【任务编号】
命令:top
- d:指定刷新时间间隔
- c:显示整个命令行的详细信息
- u:可查看指定用户的进程
- k:终止正在执行的进程
描述:进程状态显示和进程控制,每5秒自动刷新一次(动态显示)