diff options
Diffstat (limited to 'daemon/vsomeipd.cpp')
-rw-r--r-- | daemon/vsomeipd.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/daemon/vsomeipd.cpp b/daemon/vsomeipd.cpp index d924ac9..397abe9 100644 --- a/daemon/vsomeipd.cpp +++ b/daemon/vsomeipd.cpp @@ -28,6 +28,11 @@ static std::shared_ptr<vsomeip::application> its_application; void vsomeipd_stop(int _signal) { if (_signal == SIGINT || _signal == SIGTERM) its_application->stop(); + if (_signal == SIGABRT) { + VSOMEIP_DEBUG << "Suspending service discovery"; + its_application->set_routing_state(vsomeip::routing_state_e::RS_SUSPENDED); + its_application->stop(); + } } #endif @@ -55,6 +60,7 @@ int vsomeipd_process(bool _is_quiet) { // Handle signals signal(SIGINT, vsomeipd_stop); signal(SIGTERM, vsomeipd_stop); + signal(SIGABRT, vsomeipd_stop); #endif if (its_application->init()) { if (its_application->is_routing()) { |