C-Lightning

c-lightning 外掛在 Lightningd 停止後不關閉是正常的還是可接受的行為?

  • January 27, 2022

如果我編寫的外掛在我呼叫stop_ln(在startup_regtest, start_lnsetup 中)後沒有關閉(即 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>

引用自:https://bitcoin.stackexchange.com/questions/108403