zoukankan      html  css  js  c++  java
  • Linux 进程管理


    进程管理


    进程的生命周期:

    ​ 主进程pid收到信息需要处理数据的时候一般会让子进程去处理,子进程ppid处理完了之后再去把返回的结果交给主进程,如果在这个过程中主进程死了,那么子进程就会变成僵尸进程;子进程挂了对主进程没有影响。


    监控进程的命令ps


    ps -aux
    
    a	# all查看所有终端进程
    x	# 查看所有的非终端进程
    u	# user   这个进程启动的用户有哪些
    
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.3 125304  3832 ?        Ss   06:23   0:02 /usr/lib/systemd/systemd --switched-
    root          2  0.0  0.0      0     0 ?        S    06:23   0:00 [kthreadd]
    root          3  0.0  0.0      0     0 ?        S    06:23   0:02 [ksoftirqd/0]
    
    USER         启动该进程的用户
    PID 		进程的pid号
    %CPU 		占用cpu的百分比
    %MEM    	占用内存的百分比
    VSZ  		虚拟内存 (进程占用的虚拟内存)
    RSS 		真实物理内存 (进程占用真实的内存空间)
    TTY			运行的终端
    	?		内核运行的终端
    	tty1	 机器运行的终端
    	pts/0		远程连接的终端
    	
    STAT			进程的状态
    	D		无法终端的休眠状态(和i/o有关的进程)
    	R		正在运行的程序
    	S		休眠状态的
    	T		暂停或者被追踪的状态
    	W		进入交换内存
    	X		死掉的进程
    	Z		僵尸进程
    	<		优先级高的进程
    	N		优先级低的进程
    	s		父进程还有子进程
    	l		以线程方式运行
    	L		有些页被锁进内存
    	|		多进程的
    	+		正在运行的程序
    	
    START 			进程被触发启动的时间
    TIME			该进程实际使用cpu的运行时间
    COMMAND			进程的启动命令是
    
    
    --sort
    ps aux --sort=%cpu
    USER        
    PID 
    %CPU 
    %MEM    
    VSZ   
    RSS 
    TTY     
    STAT 
    START   
    TIME 
    COMMAND
     
    一种排序方法,sort=的内容必须是命令结果有的。 + - 可以顺序或者倒序
    
    [root@fpm_nginx ~]# ps axo user,pid,%cpu,%mem,command
    
    查看进程额外的命令
    pgrep
    [root@fpm_nginx ~]# pgrep nginx
    pgrep -l -a
    
    pidof
    [root@fpm_nginx ~]# pidof nginx
    
    [root@fpm_nginx ~]# yum -y install psmisc
    pstree 命令,可以查看子进程
    
    grep过滤进程的时候不显示grep
    ps -ef | grep [n]ginx
    
    
    

    kill-信号管理


    kill 
    pkill 
    killall
    
    kill
    -l		# 查看信号
    [root@fpm_nginx ~]# kill -l
     1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
     6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
    11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
    16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
    21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
    26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
    31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
    38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
    43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
    48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
    53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
    58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
    63) SIGRTMAX-1	64) SIGRTMAX	
    
    常见信号列表
    数字信号		信号别名		作用
    1				HUP			挂起信号,往往可以让进程重新配置
    kill -s HUP
    kill -1
    
    2				INT			中断信号,起到结束作用,和ctrl+c的作用一样
    kill -s	INT
    kill -2
    
    3				QUIT		让进程退出,结果是进程退出
    kill -s QUIT
    kill -3
    
    9				KILL		直接结束进程,不能被进程捕获
    kill -s KILL
    kill -9
    
    15				TERM		进程终止,这是默认信号
    kill -15
    kill -s TERM
    kill
    
    18				CONT		被暂停的进程将继续恢复运行
    19				STOP		暂停进程
    
    20				TSTP		用户停止请求,作用类似于ctrl+z把进程放到后台并暂停
    

    进程的优先级


    数值越小的优先级越高

    # nice
    -n		# 指定优先级,是在程序启动的时候,指定优先级
    [root@qls ~]# nice -n -20 tail -f /var/log/messages
    
    # renice
    [root@qls ~]# ps axo nice,command|grep sshd
    [root@qls ~]# renice 19 9962
    

    后台进程管理


    &		# 把进程放在后台执行
    ctrl + z		# 暂停
    bg:			# 放在后台
    fg:			# 调出
    
    screen
    # 新建后台的进程
    [root@fpm_nginx ~]# screen
    
    # 指定后台进程的名称
    [root@fpm_nginx ~]# screen -S ping
    
    ctrl+ad 返回到终端
    
    # 查看后台的进程
    [root@fpm_nginx ~]# screen -ls
    
    # 查看后台进程
    [root@fpm_nginx ~]# screen -r 20068
    
    nohup
    [root@fpm_nginx ~]# nohup sh a.sh &
    
    
  • 相关阅读:
    上台阶
    格子游戏
    找同乡
    约德尔测试
    hihocoder_week195奖券兑换
    hihocoder_week197逆序单词
    牛客网--数串
    hihocoder_offer收割编程练习赛55_3
    hihocoder_offer收割编程练习赛55_2
    hihocoder_offer收割编程练习赛55_1
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13278539.html
Copyright © 2011-2022 走看看