diff --git a/userspace/falco/app/restart_handler.cpp b/userspace/falco/app/restart_handler.cpp index eb0a85a8..da5f3c37 100644 --- a/userspace/falco/app/restart_handler.cpp +++ b/userspace/falco/app/restart_handler.cpp @@ -38,7 +38,9 @@ limitations under the License. falco::app::restart_handler::~restart_handler() { stop(); - close(m_inotify_fd); + if(m_inotify_fd != -1) { + close(m_inotify_fd); + } m_inotify_fd = -1; } @@ -48,6 +50,12 @@ void falco::app::restart_handler::trigger() { bool falco::app::restart_handler::start(std::string& err) { #ifdef __linux__ + if(m_watched_files.empty() && m_watched_dirs.empty()) { + falco_logger::log(falco_logger::level::DEBUG, + "Refusing to start restart handler due to nothing to watch\n"); + return true; + } + m_inotify_fd = inotify_init(); if(m_inotify_fd < 0) { err = "could not initialize inotify handler"; diff --git a/userspace/falco/app/restart_handler.h b/userspace/falco/app/restart_handler.h index 6adc28b5..5fa0e00b 100644 --- a/userspace/falco/app/restart_handler.h +++ b/userspace/falco/app/restart_handler.h @@ -61,7 +61,7 @@ public: private: void watcher_loop() noexcept; - int m_inotify_fd; + int m_inotify_fd = -1; std::thread m_watcher; std::atomic m_stop; std::atomic m_forced;