2013-07-15 14 views
1

我有兩個過程。我從控制檯(bash)產生了第一個進程。第一個過程是實習生產第二個過程。第二個過程是從文件讀取,直到它從用戶那裏得到一個SIGINT或者SIGTERM信號。但是當我按ctrl + c時,bash程序會向第一個進程發送信號 ,所以它被殺死,我的應用程序停止運行,因爲我沒有在那裏處理它。如何強制bash向另一個進程傳遞信號?

所以我的問題是如何強制bash程序將信號傳遞到第二個進程?

謝謝。

回答

1

這個bash不生成信號,tty生成信號到活動進程。將子進程設置爲活動狀態(使用tcsetpgrp),以便它接收來自tty的信號。

在做之前,請閱讀關於tty如何工作的文章。

+1

你能給我提供一個鏈接,其中tty解釋得很好,或者哪一個是你最喜歡的? –

+1

http://www.linusakesson.net/programming/tty/index.php我認爲這是很好的教程。 –

相關問題