+ # Re-generate hash of monitored files.
+ %monitored_files = &Guardian::Base::GenerateMonitoredFiles(\%mainsettings, \%monitored_files);
+
+ # Restart the worker threads.
+ &StartWorkers();
+}
+
+#
+## Shutdown function.
+#
+## This function is used to do a clean shutdown of guardian. It will be called
+## by the signal handler when recieving INT (2), QUIT (3) and TERM (15) signals.
+#
+sub Shutdown () {
+ # Log shutdown.
+ $logger->Log("info", "Shutting down...");
+
+ # Stop all workers.
+ &StopWorkers();
+
+ # Remove socket file on exit.
+ &Guardian::Socket::RemoveSocketFile();
+
+ # Sleep for one second to give perl some
+ # time to proper clean up everything before
+ # exiting.
+ sleep(1);
+
+ # Log good bye message.
+ $logger->Log("debug", "Good Bye!");
+
+ # Exit guardian.
+ exit;