Добавлена обработка подпроцессов.
[weathermon.git] / bin / weathermon
index 2314e1a4122cf8fe02f5e1950b0d8ff6397592ad..8da469650890303c2483c028df13c797f1104b7c 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/lua
 
 local json = require("json")
+local signal = require("posix.signal")
 
 require "wm_util"
 
@@ -307,6 +308,19 @@ end
 
 getConfig(arg[1])
 
+signal.signal(signal.SIGTERM, function(signum)
+
+  printLog("Terminating...")
+  local pids = get_children()
+  for k,v in pairs(pids) do
+    printLog("Terminating subprocess "..tostring(v).."...")
+    signal.kill(v,signal.SIGTERM)
+  end
+  printLog("Exiting...")
+  os.exit(0)
+
+end)
+
 if backlogdb or logdb then
   local dbdriver = require "luasql.sqlite3"
   env = assert(dbdriver.sqlite3())