用什么来模拟这些呢?
ETKH
用什么来模拟这些呢?
1) SIGHUP 2) SIGINT 3) SIGQUIT 5) SIGTRAP 9) SIGKILL 15) SIGTERM
什么命令可以用来模拟这些信号量
yjh777
[quote]原帖由 [i]ETKH[/i] 于 2008-6-26 19:17 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8680532&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
1) SIGHUP 2) SIGINT 3) SIGQUIT 5) SIGTRAP 9) SIGKILL 15) SIGTERM
什么命令可以用来模拟这些信号量 [/quote]
你说的模拟是啥意思?
kill 命令可以用来给其他进程发信号, man kill
waker
信号量和信号不是一码事,学习的时候别看差了
ETKH
[quote]原帖由 [i]yjh777[/i] 于 2008-6-26 19:48 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8680695&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
你说的模拟是啥意思?
kill 命令可以用来给其他进程发信号, man kill [/quote]
是这样的,我不知道 1) SIGHUP 2) SIGINT 3) SIGQUIT 5) SIGTRAP 9) SIGKILL 15) SIGTERM 这些都表示什么意思,想知道用什么命令来模拟这些
无声无息
模拟?
这里时说收到信号,然后用这个值来表示,你搞混了。
正如你先模拟ctrl+c,就用kill发信号一样
ETKH
[quote]原帖由 [i]waker[/i] 于 2008-6-26 20:11 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8680842&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
man 7 signal [/quote]
MAN了一把
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
有2个小问题就
1 例如 SIGINT和SIGQUIT表示的都是从键盘上发出一些指令,但是不知道这个指令对应的到底是什么呢?是Ctrl + c还是什么,也就是说Ctrl +c表示的是什么 是2 还是3?
2 如果信号2代表的就是Ctrl +c,如果我在脚本中有这么一段 trap 'abort' 2,如果我在执行脚本的时候,执行Ctrl + c的话,这个脚本就中断啦
能否这么理解?
无声无息
执行Ctrl + c,就执行abort()函数
ETKH
[quote]原帖由 [i]无声无息[/i] 于 2008-6-27 14:29 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8686241&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
执行Ctrl + c,就执行abort()函数 [/quote]
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
那这些又表示什么呢?
从字面意思上应该是从键盘上发出一个指令,但是是什么指令呢? 我是想测试一下这个 trap 'abort' 2
无声无息
#!/bin/sh
trap "mytest" 2
a=0
mytest() {
echo "enter CTRL+C"
exit 0
}
while :
do
a=$(($a+1))
sleep 1
echo $a
done
LoveForLinux
看看UNIX高级编程,用kill 可以向制定的进程发送制定的型号
ETKH
[quote]原帖由 [i]无声无息[/i] 于 2008-6-27 15:15 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8686721&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
运行后,中断看看你就知道了 [/quote]
非常感谢你的指点,但是我要在键盘上怎么做才可以产生 2 的信号呢?
无声无息
回复 #13 ETKH 的帖子
CTRL+C
ETKH
[quote]原帖由 [i]无声无息[/i] 于 2008-6-27 16:37 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8687582&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
CTRL+C [/quote]
谢谢老兄的帮助,我还有一点要向你请教一下,非常不好意思
你能说一下 trap 'abort' 1 3 5 9 15这几个阿拉伯数字要怎么模拟才能实现?
比如你说的2可以用 CTRL+C来实现,其他的怎么实现?
我是找了N久都没有解决这个问题,谢谢
chzht001
[quote]原帖由 [i]ETKH[/i] 于 2008-6-27 16:59 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8687806&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
谢谢老兄的帮助,我还有一点要向你请教一下,非常不好意思
你能说一下 trap 'abort' 1 3 5 9 15这几个阿拉伯数字要怎么模拟才能实现?
比如你说的2可以用 CTRL+C来实现,其他的怎么实现? ... [/quote]
用kill发啊,kill -l 看看可以发哪些信号
ETKH
[quote]原帖由 [i]chzht001[/i] 于 2008-6-27 17:09 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8687919&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
用kill发啊,kill -l 看看可以发哪些信号 [/quote]
$ 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
kill -2 test4.sh
-bash: kill: test4.sh: arguments must be process or job IDs
[db@ebs ~]$ kill -2
kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]
[db@ebs ~]$ kill -s 2 test4.sh
-bash: kill: test4.sh: arguments must be process or job IDs
[db@ebs ~]$ kill -s 2
kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]
[db@ebs ~]$ kill -s test4.sh
-bash: kill: test4.sh: invalid signal specification
现在我在运行这个TEST4.SH这个脚本,怎么用2来杀掉?
waker
kill -2 TEST4.SH所用进程的pid
不会接着问怎么知道进程的pid吧[img]http://bbs.chinaunix.net/images/smilies/icon_mrgreen.gif[/img]
无声无息
1 S I G H U P 挂起或父进程被杀死
2 S I G I N T 来自键盘的中断信号,通常是< C T R L - C >
3 S I G Q U I T 从键盘退出< C T R L - D >
9 S I G K I L L 无条件终止
11 S I G S E G V 段(内存)冲突
1 5 S I G T E R M 软件终止(缺省杀进程信号)
无声无息
[quote]原帖由 [i]waker[/i] 于 2008-6-27 19:39 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8688842&ptid=1181441][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
kill -2 TEST4.SH所用进程的pid
不会接着问怎么知道进程的pid吧[img]http://bbs.chinaunix.net/images/smilies/icon_mrgreen.gif[/img] [/quote]
这样子只能去google搜索,但是什么是google了?o(∩_∩)o...哈哈