如果你有 看到类 似『
Aug 5 01:25:02 study rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x
-
pid="742"
x
-
info="http://www.rsyslog.com"] rsyslogd w
as HUPed
』之类的字样,就是表示
rsyslogd
在
8/5
有重新启动
(restart)
过了!
了½了这个用法以后,如果未来你想要½某个莫名其妙的登入者的联机删除的话,就可以透过使用
pstree -p
找到相关½程,
然后再以
kill -9
½该½程删除,该条联机就会被踢掉了!这样很简单吧!
.
killall -signal
指令名称
由于
kill
后面必须要加上
PID (
或者是
job number)
,所以,通常
kill
都会配合
ps
,
pstree
等指令,因
为我们必须要找到相对应的那个½程的
ID
嘛!但是,如此一来,很麻烦~有没有可以利用『下达指
令的名称』来给予讯号的?举例来说,能不能直½½
rsyslogd
这个½程给予一个
SIGHUP
的讯号呢?
可以的!用
killall
吧!
[root@study ~]#
killall [
-
iIe] [command name]
选项
与
参数
:
-
i
:
interactive
的意思,½互式的,若需要
删
除
时
,
会
出
现
提示字符
给
用
户
;
-
e
:
exact
的意思,表示『后面½的
command name
要一致』,但整
个
完整的指令
不能超
过
15
个
字符。
-
I
:指令名
称
(
可能含
参数
)
忽略大小
写
。
范例一:
给
予
rsyslogd
这个
指令
启动
的
PID
一
个
SIGHUP
的
讯号
[root@study ~]#
killall
-
1 rsyslogd
#
如果用
ps aux
仔
细
看一下,若包含所有
参数
,
则
/usr/sbin/rsyslogd
-
n
才是最完整的!
范例二:
强
制
终
止所有以
httpd
启动
的
½
程
(
其
实
并
没
有此
½
程在系
统内
)
[root@study ~]#
killall
-
9 httpd
范例三:依次
询问
每
个
bash
程序是否需要被
终
止
运
作!
[root@study ~]#
killall
-
i
-
9 bash
Signal bash(13888) . (y/N)
n
<==
这个
不
杀
!
Signal bash(13928) . (y/N)
n
<==
这个
不
杀
!
Signal bash(13970) . (y/N)
n
<==
这个
不
杀
!
Signal bash(14836) . (y/N)
y
<==
这个杀
掉!
#
具有互
动
的功能!可以
询问
你是否要
删
除
bash
这个
程序。要注意,若
没
有
-
i
的
参数
,
#
所有的
bash
都
会
被
这个
root
给杀
掉!包括
root
自己的
bash
喔!
^_^
总之,要删除某个½程,我们可以使用
PID
或者是启动该½程的指令名称,
而如果要删除某个服
务呢?呵呵!最简单的方法就是利用
killall
,
因为他可以½系统当中所有以某个指令名称启动的½
程全部删除。
举例来说,上面的范例二当中,系统内所有以
httpd
启动的½程,就会通通的被删除
啦!
^_^