01 /var/run/yum.pid 已被锁定,PID 为 2790 的另一个程序正在运行 , KILL杀
方法一:首先:rm -f /var/run/yum.pid然后: 再次运行Yum方法二:kill -9 pid号 #强制杀死该进程kill -9 2790 #杀死pid为2790的程序kill的用法:
目录
方法一:
首先: rm -f /var/run/yum.pid
然后: 再次运行Yum
方法二:
kill -9 pid号 #强制杀死该进程
kill -9 2790 #杀死pid为2790的程序
kill的用法:
kill命令主要用于强制关闭进程
一、杀死后台一个进程
第一步:找到某个应用的进程号:
ps -aux | grep 应用名称 或 ps -ef | grep 应用名称 或 top | grep 应用名称
[root@localhost ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 128156 4076 ? Ss 09:58 0:01 /usr/lib/sys
root 2 0.0 0.0 0 0 ? S 09:58 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 09:58 0:00 [ksoftirqd/0
root 4 0.0 0.0 0 0 ? R 09:58 0:00 [kworker/0:0
root 5 0.0 0.0 0 0 ? S< 09:58 0:00 [kworker/0:0
root 7 0.0 0.0 0 0 ? S 09:58 0:00 [migration/0
root 8 0.0 0.0 0 0 ? S 09:58 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 09:58 0:00 [rcu_sched]
root 10 0.0 0.0 0 0 ? S< 09:58 0:00 [lru-add-
第二步:杀死进程
正常杀死进程:kill -15 pid号
如杀死上图中pid为10的进程:kill -15 10
强制杀死进程: kill -9 pid号
注:杀死进程的时候,推荐是正常杀死进程,而不是强制杀死进程。
原理解读:
Kill命令和信号
当你执行一个“kill”命令,你实际上发送了一个信号给系统,告诉它去终结不正常的应用。总共有60个你可以使用的信号,但是基本上你只需要知道SIGTERM(15)(正常杀死信号)和SIGKILL(9)(强制杀死信号)。
kill -l #信号的列表
[root@localhost ~]# 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
共有64种信号,每种信号均有名称和对应的信号序列号,当想要发送什么信号给系统的时候,只要告知系统该信号的序列号即可。
常用的只有9种信号:
- 1 #终端断线
- 2 #中断(等同 Ctrl + C)
- 3 #退出(同 Ctrl + \)
- 15 #终止(可以使得进程在退出之前清理并释放资源)
- 9 #强制终止
- 18 #继续(与19相反)
- 19 #暂停(等同 Ctrl + Z)
二、踢出一个用户(杀死一个用户开启的所有进程)
(1)查看用户登陆信息: who
[root@localhost ~]# who
root :0 2022-03-07 09:58 (:0)
root pts/0 2022-03-07 10:13 (:0)
(2)查看自己的身份
whoami #避免把自己踢掉
(3)踢出登陆的用户
pkill -kill -t pts/2 (按终端,pts/2为所被下线用户的终端)
pkill -u lisi #强制下线用户lisi
killall -9 -u lisi #强制下线用户lisi
kill的注意事项:
1.如果kill时,不指定信号就会默认发送信号15,终止指定进程,使得进程在退出之前清理并释放资源。
2.使用kill时,root用户将影响用户的进程,非root用户只能影响自己的进程。
3.使用kill时,当kill向进程发送信号,必须是这些进程的主人。如果杀死一个没有权限杀死的进程或杀死一个不存在的进程,就会报错。如下:
-bash: kill: (20) - No such process
4.使用kill时,如果成功地发送了信号,shell会在屏幕上显示出进程的终止信息。(按下Enter键,就会显示出来)
5.使用kill时,如果使用信号9,使进程强行终止,可能会使数据丢失或者终端无法恢复到正常状态。
6.init进程,它是一个由内核启动的用户级进程,所有进程都是init进程的子孙,init不可杀。
更多推荐
所有评论(0)