Monday, December 8, 2008

Linux kill

最近與同事寫Linux程式遇到幾個問題。就是兩個Process要如何互相溝通,當然,在Linux底下有很多種方式可以做到,像是Pipe,share memory...等。而我們的兩個Process只是簡單的互相通知而已,所以我們用了Signal的方式來互相通知而已。不用複雜的Pipe,也不用share memory。
。只要互相傳送訊號(Signal)就可以做到了。

所以兩個Process就定義了SIGUSR1和SIGUSR2這兩個。我們兩個只要透過這樣的傳遞訊號,這樣兩個Process就可以互相傳遞訊號了。

問題來了,此時有A和B兩個Process時,A與B已經定義SIGUSER1,而B還沒有指定SIGUSR2,A Process可以利用kill 的方式傳遞SIGUSER1給B Process;當B process 還沒有定義SIGUSER2,而A Process利用Kill方式傳遞SIGUSER2給B Process,B Process,就會被Kill掉。@_@...

No comments: