进程

(1)进程概念

什么是进程:已启动的可执行程序
程序:二进制文件
进程:程序运行的过程,动态,有生命周期和运行状态

(2)ps:静态查看进程

常用命令和选项:
ps aux 					//查看进程
ps aux --sort -%cpu 	//查看进程并以cpu使用率排序
ps -ef 					//查看进程
ps axo user,pid,%cpu --sort -%cpu 	//自定义显示字段
pgrep -l sshd 			//查看进程的pid
[root@master ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.5 190848  2876 ?        Ss   May05   0:20 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
说明:
USER:运行进程的用户
%CPU          	//CPU占用率
%MEM			//内存占用率
VSZ				//占用虚拟内存
RSS				//占用实际内存
TTY				//进程运行的终端
STAT			//进程运行状态
	R	//运行
	S	//可中端睡眠
	D   //不可中断睡眠
	T   //停止的进程
	Z   //僵尸进程
	X   //死掉的进程
	Ss	//s进程的领导者,父进程
	S<	//优先级较高的进程
	SN  //优先级较低的进程
	R+  //前台的进程
	SL  //以线程方式运行
START   		//进程的启动时间
TIME  			//进程占用CPU的总时间
COMMAND 		//进程文件,进程名

(3)top:动态查看进程

常用命令和选项:
	top 
	top -d 1 					//每隔一分钟刷新一次
	top -d 1 -p 950				//只查看进程pid为950的信息
	top -d 1 -p 950,1 			//同时查看两个进程信息
	top -d 1 -u root 			//查看进程属主是root的进程信息
	top -d 1 -b -n 2 > top.txt  //将两次top信息写入到文件中
top中常用快捷键
	M			//按内存排序
	P			//按cpu使用排序
	1			//显示所有CPU负载
	>			//向后
	<			//向前
	z			//彩色
	W			//保存top环境变量
	f			//自定义显示字段

(4)进程信号:kill pkill killall

#kill -l				//列出所支持的信号
编号 	信号名		作用
1		SIGHUP		重新加载配置
2		SIGINT		键盘中断
3		SIGQUIT		键盘退出
9		SIGKILL		强制终止
15		SIGTERM		终止(正常结束),缺省信号
18		SIGCONT		继续
19		SIGSTOP		停止
20		SIGTSTP		暂停
kill pkill killall总结:作用都是给进程发送信号
kill 进程pid/job id
killall 进程名   
pkill  进程名
kill语法:kill [编号或信号名]  进程pid 
kill -1 1000 			//重新加载配置
kill -9 1000				//强制终止进程,进程的所使用的相关资源不会正常释放,不建议使用,适合杀死进程僵死
kill -15 1000				//等同于kill 1000,缺省信号,正常结束进程
killall语法:killall 进程名
killall	vim				//终止与vim相关的进程
pkill -9 进程名			//强制终止sleep进程
pkill -u jack 			//踢出远程登录到本机的jack用户
pkill -t pts/2			//终止pts/2上所有的进程
pkill -9 -t pts/2		//终止pts/2上所有进程,并结束该pts/2

(5)进程优先级:nice值

进程调度及多任务:每个cpu在一个时间点上只能处理一个进程,通过时间片技术,linux实际能够运行的进程可以超出实际可用的cpu及核心数量。linux内核进程调度程序将多个进程在cpu核心上快速切换,从而给用户多个进程在同时运行的印象
相对优先级nice:由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为SCHED_OTHER
	SCHED_OTHER调度策略运行的进程的相对优先级称为进程的nice值,可以有40种不同级别的nice值
	nice值越高:表示优先级越低,例如+19,该进程容易将cpu使用量让给其它进程
	nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出cpu
查看进程的nice值:
	1)使用top查看nice值:
		NI:实际nice级别
		PR:将nice级别显示为映射到更大优先级队列,-20映射为0,+19映射到39
	2)使用ps查看nice级别:
		ps axo pid,command,nice --sort=-nice 
		ps axo pid,command,nice,cls --sort=-nice  			//TS表示该进程使用的调度策略为SCHED_OTHER
设置nice值
	1)启用具有不同nice级别的进程:启用进程时,通常会继承父进程的nice级别,默认为0
		nice -n -5 sleep 5000 &
		nice -n -20 systemctl start httpd 
	2)使用shell更改nice级别
		renice -20 进程pid

(6)作业控制jobs

作业控制:允许一个shell实例来运行和管理多个命令,使用作业控制,可以选择性暂停恢复以及运行其它命令,让shell可以在子进程运行期间返回接受其它命令
fg:前台进程是在终端中运行命令,该终端为进程的控制终端,前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端
bg:后台进程没有控制终端,它不需要终端的交互
例:
	sleep 3000 &				//运行程序时,让其在后台执行 
	sleep 4000  				//ctrl + z , 将前台的出现挂起(暂停)到后台
	ps aux |  grep sleep 
	jobs						//查看后台作业
	bg 2						//让作业2在后台运行
	fg 1 						//将作业1调回到前台
        fg                                             //将最后一次的挂起的作业调到前台
	kill %1						//杀死作业1,注意kill 1是终止pid为1的进程
nohup和&的区别
	sh 22.sh &  
		将任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失
	nohup sh 22.sh  
		将任务放到后台,关闭标准输入,前台不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
	nohup sh 22.sh  &
		将任务放到后台,但是依然可以使用标准输入,前台能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
screen :执行命令断网可以恢复
	yum install screen -y 
	screen 
	sleep 3000 				//断开xshell
	screen -list 			//查看前台任务
	screen -r 编号			//重新加载任务到前台
posted @ 2018-05-07 22:36  你很棒  阅读(147)  评论(0编辑  收藏  举报