[root@study ~]#
kill
-
9 %2; jobs
[1]+ Stopped vim ~/.bashrc
[2]
Killed
find /
-
print
#
几秒你再下
jobs
一次,就
会发现
2
工作不
了!因
被移除了!
范例二:找出目前的
bash
境下的背景工作,并
½该
工作『正常
止』掉。
[root@study ~]#
jobs
[1]+ Stopped vim ~/.bashrc
[root@study ~]#
kill
-
SIGTERM %1
#
-
SIGTERM
-
15
是一
的!您可以使用
kill
-
l
#
这个
案例中,
vim
的工作
法被
½
束喔!因
法透
kill
正常
止的意思!
特别留意一下,
-9
这个
signal
通常是用在『强制删除一个不正常的工作』时所使用的,
-15
则是
以正常步骤½束一项工作
(15
也是默认值
)
,两者之间并不相同呦!举上面的例子来说,
我用
vim
时候,不是会产生一个
.filename.swp
的文件吗?
那么,当使用
-15
这个
signal
时,
vim
会尝试
以正常的步骤来½束掉该
vi
的工作,
所以
.filename.swp
会主动的被移除。但若是使用
-9
这个
signal
时,由于该
vim
工作会被强制移除掉,因此,
.filename.swp
就会继续存在文件系统当中。这
样您应该可以稍微分辨一下了吧?
不过,毕竟正常的作法中,你应该先使用
fg
来取回前景控制权,然后再离开
vim
才对~因此,以
上面的范例二为例,其实
kill
确实无法使用
-15
正常的½束掉
vim
的动作喔!此时还是不½议使
-9
啦!因为你知道如何正常½束该½程不是吗?
通常使用
-9
是因为某些程序你真的不知道怎
么透过正常手段去终止他,这才用到
-9
的!
其实,
kill
的妙用是很无穷的啦!他搭配
signal
所详列的信息
(
man 7 signal
去查阅相关资料
)
以让您有效的管理工作与½程
(Process)
,此外,那个
killall
也是同样的用法!
至于常用的
signal
至少需要了½
1, 9, 15
这三个
signal
的意义才好。
此外,
signal
除了以数值来表示之外,也可以
使用讯号名称喔!
举例来说,上面的范例二就是一个例子啦!至于
signal number
与名称的对应,
呵,使用
kill -l
就知道啦
(L
的小写
)
另外,
kill
后面½的数字默认会是
PID
,如果想要管理
bash
的工作控制,就得要加上
%
数字
了,
这点也得特别留意才行喔!
16.2.3
脱机管理问题
要注意的是,我们在工作管理当中提到的『背景』指的是在终端机模式下可以避免
[crtl]-c
中断的一
个情境,
你可以说那个是
bash
的背景,并不是放到系统的背景去喔!所以,
工作管理的背景依旧
与终端机有关
啦!
在这样的情况下,如果你是以远程联机方式连½到你的
Linux
主机,并且½工作
&
的方式放到背景去,
请问,在工作尚未½束的情况下你脱机了,该工作还会继续½行吗?答
案是『否』!不会继续½行,而是会被中断掉。
那怎么办?如果我的工作需要½行一大段时间,我又不能放置在背景底下,那该如何处理呢?
首先,
你可以参考前一章的
at
来处理即可!因为
at
是½工作放置到系统背景,
而与终端机无关。如果不
想要使用
at
的话,那你也可以尝试使用
nohup
这个指令来处理喔!这个
nohup
可以让你在脱机或
注销系统后,还能够让工作继续½行。他的语法有点像这样: