亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2937 | 回復(fù): 4
打印 上一主題 下一主題

腳本中捕獲信號(hào),在管道參與時(shí)失效 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-08-28 22:19 |只看該作者 |倒序?yàn)g覽
我需要在腳本中處理信號(hào),按照標(biāo)準(zhǔn)的方法處理沒有問題,腳本如下:

#!/bin/sh

# sig.sh

signal_handle()
{
    echo "Got a signal"
}

trap signal_handle SIGHUP SIGINT SIGQUIT SIGPIPE SIGTERM

while true
do
    echo "wait for signal"
    sleep 1
done

這個(gè)腳本單獨(dú)運(yùn)行沒有問題,但是如果將輸出傳入管道,信號(hào)就不能被捕獲了。如下面的命令

sh sig.sh 2>&1 | tee log

請(qǐng)問是什么原因,有沒有辦法解決。謝謝

[ 本帖最后由 Largem 于 2009-8-28 22:20 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-08-29 09:59 |只看該作者
信號(hào)捕獲仍然起作用, 原因是:

你肯定是通過按鍵來發(fā)送信號(hào)的, 如SIGINT .. 此時(shí)tee接收到了信號(hào)而中斷, 而后sh sig.sh 收到SIGPIPE信號(hào), 該信號(hào)被捕捉后企圖向管道輸出Got a signal, 由于管道已經(jīng)關(guān)閉(tee消失了), 就會(huì)出現(xiàn)類似  echo: write error: Broken pipe 這樣的錯(cuò)誤, 所以你感覺好像信號(hào)捕獲失效. 如果你不捕獲SIGPIPE, 此時(shí)sh sig.sh由于收到SIGPIPE也會(huì)中斷, 給你的感覺也是SIGINT捕獲失效

如果使用kill確保SIGINT信號(hào)發(fā)送給sh sig.sh 進(jìn)程 (而不是tee進(jìn)程), 那么信號(hào)捕獲的效果就如預(yù)期了.

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-08-30 08:18 |只看該作者
非常感謝,有一些進(jìn)展了,我確實(shí)用按鍵發(fā)信號(hào)的,ctrl-c

如果按照如下的調(diào)用:
sh sig.sh | tee log
確實(shí)收到了信號(hào),也出現(xiàn)了Broken pipe.

如果加上了2>&1, 信號(hào)就完全沒有了。

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報(bào)曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
4 [報(bào)告]
發(fā)表于 2009-08-31 08:18 |只看該作者

回復(fù) #3 Largem 的帖子

Broken pipe這個(gè)消息也想輸出到已經(jīng)破裂的管道

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-08-31 23:12 |只看該作者

回復(fù) #4 waker 的帖子

沒看懂你回復(fù)的意思。我已經(jīng)trap SIGPIPE了,但是并沒有截獲到,如果有2>&1的話。命令如下

sh sig.sh 2>&1 | tee log

如果沒有2>&1,管道消息是被處理了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP