- 论坛徽章:
- 0
|
本帖最后由 Ex_ 于 2010-12-27 20:15 编辑
我的脚本简化如下:
在脚本中调用一个程序,该程序在某些情况出现下会向该脚本送一个信号,
脚本用trap命令捕获该信号,并执行定义的函数。
- #!/bin/bash
- handler()
- {
- zenity --info --title="Ouch!" --text="出错了" --timeout=1
- exit 1
- }
- trap "handler" SIGUSR1
- ./a.out
- echo "this line should not show if signal is trapped"
复制代码
a.out源代码简化如下:
- #include<signal.h>
- #include<stdio.h>
- #include<unistd.h>
- #include<signal.h>
- int main()
- {
- printf("do some jobs");
- kill(getpgrp(),SIGUSR1);
- return 0;
- }
复制代码
在终端下运行脚本是正常的,zenity对话框会出现;
但如果是点击脚本运行,则对话框不会出现。
为什么? |
|