页次: 1
我希望 Ctrl-C 时执行一个 shell 函数,但是不要中断当前的命令,该怎么做?
键盘信号会发往哪些进程呢?
离线
trap 命令用于登记信号处理命令。
我用的一个例子:
Init()
{
trap "Exit 1" 1 2 3 9 11 15
if [ -e "$LockFile" ]; then
echo "Error: getmail.sh already running!" >&2
exit 3
fi
>"$LockFile"
}
Exit()
{
rm -f "$LockFile"
exit $1
}
至于信号会发给哪些进程,比较复杂,参见《UNIX 环境高级编程》中「进程关系」一章。
最近编辑记录 自由建客 (2013-03-14 14:31:23)
离线
setogrp是干嘛的 是修改系统调用中关于ctrl-c产生的中断吗?
那么是不是这个一个所有的ctrl-c都改了不光针对这一个程序?
离线
setogrp是干嘛的 是修改系统调用中关于ctrl-c产生的中断吗?
那么是不是这个一个所有的ctrl-c都改了不光针对这一个程序?
是 setpgrp,你查文档就知道了,设置进程组用的。Ctrl-C 是发送 SIGINT 到前台进程组。把子进程放到新的组里应该就可以了。
离线
哦
离线
页次: 1