簡體   English   中英

在Linux中殺死並發出信號

[英]Kill and signal issue in linux

我們有一個庫,它會向上述pid發送kill(pid, SIGUSR2)信號,在本例中,該pid大部分時間都在運行。 該過程具有信號命令,該命令具有與此信號相關的信號處理。

我可以看到此kill命令正在運行並返回成功(0),但是相應的信號處理程序有時被調用,有時不被調用。

這種不一致的原因可能是什么?

我得到了解決方案,基本上其他一些代碼正在阻止SIGUSR2信號,因此我只是使用sigprocmask(SIG_UNBLOCK, &set, NULL);阻止sigprocmask(SIG_UNBLOCK, &set, NULL); 而且有效。

它僅在第一次發生的原因是它被阻塞的持續時間,基本上它們在解除阻塞之前被阻塞了一段時間,這里的代碼路徑執行是該過程第一次無法在這段時間內拾取信號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM