私は、INTやTERMのようなシグナルを受信するときに正常に終了しないライブラリを使用しています。私はそれらをトラップし、優雅に終了したいと思います。モンキーパッチ信号を外部モジュールに取り込むことは可能ですか?私のコードの信号トラッピングは正常に動作しますが、モジュールからのコードがアクティブである間にINTを呼び出すときには何の効果もありません。Ruby:シグナルハンドリングのためのモンキーパッチモジュール
0
A
答えて
0
モンキースキャニングでは、通常、名前空間にあるよりも多くの方法でメソッドを交換したり、ジャムしたりすることによって、ライブラリのコードを変更する必要があります。
シグナル処理はプロセスレベルで行われるため、それはあなたがモノスケッチできるものではありません。あなたができることは、必要なシグナルハンドラを追加し、コードが適切に応答するようにすることです。例えば
:あなたはまた、トップレベルでInterrupt
例外が表示される場合があります
Signal.trap("INT") do
BustedLibrary.shutdown!
exit(0)
end
、他の事はあなたがキャッチして対処することができます。
0
シグナルはオブジェクトやモジュールではなくプロセスに影響を与えるため、シグナルをトラップするためにサードパーティのモジュールを修正する必要はありません。あなたのコードにトラップしてください。
関連する問題
- 1. Linuxカーネルでのシグナルハンドリングのためのスタックフレーム
- 2. python-daemonでのシグナルハンドリング
- 3. fork()とシグナルハンドリングのプログラム
- 4. OpenMPIでのシグナルハンドリングのエラー
- 5. 子プロセスでのSIGSEGVシグナルハンドリング
- 6. ドライバからアプリケーションへのシグナルハンドリング
- 7. JVMシグナルハンドリングについて
- 8. シグナルハンドリングの欠陥を再定義する
- 9. Perl Term :: ReadLine :: Gnuシグナルハンドリングの問題
- 10. ユーザーのためのRuby on Railsのロール
- 11. マルチクラスの問題のためのruby libsvm
- 12. Ruby on Rails/Yellow Maps Rubyプラグインの悲しみのため
- 13. タイムラインに追加するためのRuby on Rubyのグラフapi
- 14. フォーマット時間のためのrubyスクリーンスクレイピングライブラリ
- 15. Rubyのためのシンプルなローカルデータベースソリューション?
- 16. RubyでDSLを書くためのチュートリアル
- 17. Ruby(Rails)の丸め
- 18. Rubyの丸めの問題
- 19. Rubyハッシュを埋めるための良い方法は?
- 20. ローカルマシンからRuby上のRubyアプリケーションに画像をアップロードするためのCurlリクエスト
- 21. 素早く汚れたXMLシリアル化のためのRubyコード?
- 22. "シンプル"ルックアップのためのRuby on Railsのモデルアソシエーションの種類は?
- 23. コンパイル/実行のためのショートカットキーのEmacsのRubyモード?
- 24. ハッシュのためのRubyのgroup_byのようなメソッド
- 25. 暗号化のための高レベルのrubyライブラリ
- 26. Ruby on RailsスレッドセーフクラスWebサービスへのアクセスのための変数
- 27. DSLを構築するためのScalaでのRubyのinstance_eval
- 28. ruby on rails appのためのPDF編集の宝石
- 29. クラスのメソッドを呼び出すためのRubyの構文
- 30. Ruby on railsの許可のためのappモジュール