Linux 进程管理

Posted 黄褐色的菊花怪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 &

以上是关于Linux 进程管理的主要内容,如果未能解决你的问题,请参考以下文章

linux c 退出进程的代码

Linux进程管理

Linux系统管理10——进程和计划任务管理

Linux中的进程管理

Linux进程和计划任务管理

Linux进程和任务管理