系统相关
首页 > 系统相关> > 第二十八章 管理进程状态,进程的优先级

第二十八章 管理进程状态,进程的优先级

作者:互联网

管理进程状态,终止进程

当程序运行为进程后,如果希望停止进程
Linux系统中的killall、pkill命令用于杀死指定名字的进程,我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用PS等命令再配合grep来查找进程,而killall、pkill把这两个过程合二为一,是一个很好用的命令。

终止进程
kill    killall   pkill     #linux中杀手三人组

kill #根据进程id去终止进程,如果进程不存在,会提示

[root@lxy ~]# ps aux |grep top
root       1910  0.0  0.2 162008  2216 pts/1   S+   10:03   0:00 top
[root@lxy ~]# kill 1910
[root@lxy ~]# ps aux |grep top

根据信号输入
[root@lxy ~]# 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) SIGHUP #重新加载配置文件,平滑重启
2) SIGINT #跟ctrl+c一样,终止进程
9) SIGKILL #强制终止进程
15) SIGTERM #终止进程,默认的信号  
20) SIGTSTP #跟ctrl+z一样,将前台进程暂停到后台

#终止进程
[root@lxy ~]# kill -15 2233

#平滑重启,进程的ID不会改变,会重新加载配置文件
[root@lxy ~]# kill -1 2570

#取消当前进程的操作
[root@lxy ~]# kill -2 2726

#强制终止进程
[root@lxy ~]# kill -9 3091

#将前台进程暂停到后台
[root@lxy ~]# kill -20 3091
PS:默认kill父进程,这样才能彻底的杀掉该进程.否则如果只是kill子进程,没有用

killall #根据进程的名称取终止进程,如果进程不存在,会提示,精确匹配
[root@lxy ~]# killall top
[root@lxy ~]# ps aux |grep top
[root@lxy ~]# killall top
top: no process found

pkill #根据进程名称终止进程,进程如果不存在,不会提示,模糊匹配
#只要进程名称中包含终止进程服务的名称,就会终止掉,特别是sh这样的进程

后台进程管理

通常进程都会在终端前台运行,但是一旦关闭终端,进程也会随着结束,那么此时我们就希望进程能在后台运行,就是将在前台运行的进程放到后台运行,这样即使我们关闭了终端也不影响进程的正常运行。

[root@lxy ~]# nohup   tar czPf etc.tar.gz   /etc/ /var/ &

nohup #不中断运行程序  
& #将前台运行的程序放入到后台运行

[root@lxy ~]# jobs
[1]+ Stopped                 vim test.txt
[root@lxy ~]# bg %1
[1]+ vim test.txt &
[root@lxy ~]# jobs
[1]+ Stopped                 vim test.txt
[root@lxy ~]# fg %1
vim test.txt

[1]+ Stopped                 vim test.txt
[root@lxy ~]# bg %2
[2]+ tar czPf etc2.tar.gz /etc/ /var/ &
[root@lxy ~]# jobs
[1]+ Stopped                 vim test.txt
[2]- Running                 tar czPf etc2.tar.gz /etc/ /var/ &

jobs #显示当前终端后台的用户执行的进程
bg %ID #让一个暂停的后台进程在后台进行运行
fg   %ID #让一个后台的进程放入到前台运行
screen后台管理进程命令
screen      #后台管理进程命令,会生成一个新的子shell,在子shell中运行你的进程,父shell退出了,不影响子shell的运行
yum install screen -y

[root@lxy ~]# screen #随机打开一个子shell窗,使用screen时会开启一个子bash窗口,关闭父bash并不影响子bash。

-list #显示所有screen的shell窗口
-r #进入指定的shell中
-S #指定shell的名字
-x #远程演示,主窗口操作,副窗口演示

ctrl键+a+d #临时退出这个子shell
exit #是真正的退出这个子shell窗口

[root@lxy ~]# screen -list #显示所有screen的shell窗口
There is a screen on:
8431.pts-0.lxy (Detached)
1 Socket in /var/run/screen/S-root.

[root@lxy ~]# screen -r 8431 #进入指定的shell中
[screen is terminating]
[root@lxy ~]#
[root@lxy ~]# screen -list
No Sockets found in /var/run/screen/S-root.


[root@lxy ~]# screen   -S tar #给这个子shell起个名字  

[root@lxy ~]# screen -list
There is a screen on:
8770.tar (Detached)
1 Socket in /var/run/screen/S-root.

[root@lxy ~]# screen -r tar

[root@lxy ~]# screen   -x tar #远程演示,主窗口操作,副窗口演示

 

进程的优先级

ps -o   #显示指定的进程信息
#查看所有进程的优先级
[root@lxy ~]# ps axo user,pid,nice,command

#在启动一个程序时,设定该程序的优先级
[root@lxy ~]# nice -n -10   vim test.txt

[root@lxy ~]# renice -n 0 4361 #修改已经存在的程序的优先级
4361 (process ID) old priority -20, new priority 0
[root@lxy ~]# ps axo   user,pid,nice,command |grep sshd
root       4361   0 /usr/sbin/sshd -D

系统平均负载


什么是平均负载

在单位时间内,cpu在运行中或者不可中断中的程序,进程的平均活跃数


怎么查看平均负载

top
top - 12:03:21 up 7 days, 11 min,  2 users, load average: 0.01, 0.08, 0.20

[root@lxy ~]# w
12:03:36 up 7 days, 11 min,  2 users, load average: 0.01, 0.07, 0.20

[root@lxy ~]# uptime
12:03:48 up 7 days, 11 min,  2 users, load average: 0.01, 0.07, 0.20

这个值根据CPU的核心数

[root@lxy ~]# grep   'model name' /proc/cpuinfo   | wc -l
1

CPU个数为 2个
2.68    6.70    13.67

134%    335%     683.5%

 

标签:SIGRTMAX,优先级,第二十八章,screen,lxy,进程,root,SIGRTMIN
来源: https://www.cnblogs.com/smyjs172lxy/p/13429605.html