C-Lightning
c-lightning 外掛在 Lightningd 停止後不關閉是正常的還是可接受的行為?
如果我編寫的外掛在我呼叫
stop_ln
(在startup_regtest
,start_ln
setup 中)後沒有關閉(即 Python 程序仍在執行),這是否正常?外掛是否作為子程序打開?它應該處理特定的信號嗎?這是在 Telegram 上提出的。
在 c-lightning 中,我們給外掛關閉的時間,並且在一段時間(30 秒)後,如果外掛沒有響應關閉,我們將其殺死。
但是,某些類型的外掛可以繼續執行,因為它們可以由 bash 腳本或其他東西執行,並且 c-lighting 只會殺死 bash 腳本程序而不是真正的項目。
這發生在用 Java 或 Kotlin 編寫的外掛上,帶有庫clightning4j。
總之,其中一些外掛會假關閉,特別是,如果外掛響應關閉通知,c-lighting 無法殺死它,但假設外掛會殺死自己(使用簡單的 exit(0)),這可能是外掛寫得不好的案例,但肯定有一個例子可以幫助調試案例
這是製作技巧的過程<https://github.com/SimonVrouwe/lightning/blob/81325097eddde6dfff911331c09963d5a316a6cc/lightningd/plugin.c#L2090>