Linux 中进程管理ps命令的使用方法,kill的使用方法,如何结束后台进程


进程管理


进程的生命周期:

主进程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=的内容必须是命令结果有的。 + - 可以顺序或者倒序
[[email protected]_nginx ~]# ps axo user,pid,%cpu,%mem,command
查看进程额外的命令
pgrep
[[email protected]_nginx ~]# pgrep nginx
pgrep -l -a
pidof
[[email protected]_nginx ~]# pidof nginx
[[email protected]_nginx ~]# yum -y install psmisc
pstree 命令,可以查看子进程
grep过滤进程的时候不显示grep
ps -ef | grep [n]ginx


kill-信号管理


kill 
pkill 
killall
kill
-l # 查看信号
[[email protected]_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 # 指定优先级,是在程序启动的时候,指定优先级
[[email protected] ~]# nice -n -20 tail -f /var/log/messages
# renice
[[email protected] ~]# ps axo nice,command|grep sshd
[[email protected] ~]# renice 19 9962


后台进程管理


& # 把进程放在后台执行
ctrl + z # 暂停
bg: # 放在后台
fg: # 调出
screen
# 新建后台的进程
[[email protected]_nginx ~]# screen
# 指定后台进程的名称
[[email protected]_nginx ~]# screen -S ping
ctrl+ad 返回到终端
# 查看后台的进程
[[email protected]_nginx ~]# screen -ls
# 查看后台进程
[[email protected]_nginx ~]# screen -r 20068
nohup
[[email protected]_nginx ~]# nohup sh a.sh &