• 进程


    (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 编号			//重新加载任务到前台
    
  • 相关阅读:
    python-深入学习
    python-第一天学习python
    JMeter-关联、添加压力机、linux下运行、抓包、手机抓包等学习
    python模块---常用模块2
    python模块---常用模块
    python函数--装饰器
    python函数--匿名函数,内置函数,闭包
    python函数--生成器,生成器表达式,列表推导式
    python函数--global,nonlocal ,新格式化输出,迭代器
    python函数--万能参数,形参,名称空间,嵌套,内置函数globals locals ,关键字nonlocal global
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/9005446.html
Copyright © 2020-2023  润新知