From: Roman Bazalevsky <rvb@rvb.name>
Date: Thu, 6 Dec 2018 06:41:54 +0000 (+0300)
Subject: Добавлена обработка подпроцессов.
X-Git-Url: https://git.rvb.name/weathermon.git/commitdiff_plain/7580c60d80239c3a880e124c550c2353f8153d82

Добавлена обработка подпроцессов.
---

diff --git a/bin/weathermon b/bin/weathermon
index 2314e1a..8da4696 100755
--- a/bin/weathermon
+++ b/bin/weathermon
@@ -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())
diff --git a/init.d/weathermon b/init.d/weathermon
index bbf6f21..8553b6a 100755
--- a/init.d/weathermon
+++ b/init.d/weathermon
@@ -48,7 +48,5 @@ start_service() {
 }
 
 stop_service() {
-	killall weathermon
-	killall weathermon-iio
 	/usr/bin/weather-backup
 }
diff --git a/lib/wm_util.lua b/lib/wm_util.lua
index 984f6ae..2c05bb0 100644
--- a/lib/wm_util.lua
+++ b/lib/wm_util.lua
@@ -1,6 +1,9 @@
 #!/usr/bin/lua
 
 local socket = require "socket"
+local lfs = require "lfs"
+local uci = require "uci"
+local posix = require "posix"
 
 function startswith(String,Start)
    if String then
@@ -95,7 +98,6 @@ function split(s, delimiter)
 end
 
 function list_dir(name)
-    local lfs = require "lfs"
     local result = {}
     for name in lfs.dir(name) do
         if not startswith(name,".") then
@@ -107,8 +109,6 @@ end
 
 function get_devid(config)
 
-  local uci = require "uci"
-
   local web_devid = uci.get(config,"web","devid")
   
   if web_devid then
@@ -126,4 +126,26 @@ function get_devid(config)
   local web_devid = io.read("*line")
   return web_devid:gsub(":",""):upper()
 
-end
\ No newline at end of file
+end
+
+function get_children()
+
+  local pid = posix.getpid()
+  local pidlist = list_dir('/proc')
+  local pids = {}
+
+  for k,v in pairs(pidlist) do
+
+    pcall( function ()
+      local stats = get_file_content('/proc/'..v..'/stat')
+      local ppid = tonumber(split(stats,' ')[4])
+      if pid == ppid then
+        pids[#pids+1] = tonumber(v)
+      end 
+    end)
+
+  end
+
+  return pids
+
+end
diff --git a/openwrt-web/meteo/archive.js b/openwrt-web/meteo/archive.js
index 20aa7aa..a0850e4 100644
--- a/openwrt-web/meteo/archive.js
+++ b/openwrt-web/meteo/archive.js
@@ -146,7 +146,7 @@ function drawGraph(graphData) {
           yAxes: [{
             scaleLabel: {
               display: true,
-              labelString: properties["names"][sensor+"."+param],
+              labelString: properties["names"][devid+"."+sensor+"."+param] + ", " + properties["units"][devid+"."+sensor+"."+param],
               fontColor: properties["fonts"]["axes"]["color"],
               fontSize: properties["fonts"]["axes"]["size"],
               fontStyle: properties["fonts"]["axes"]["style"],
diff --git a/web/config_local.php~ b/web/config_local.php~
deleted file mode 100644
index 1ca0c18..0000000
--- a/web/config_local.php~
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-  $mysql_host = 'estia.rvb-home.lan';
-  $mysql_schema = 'meteo';
-  $mysql_user = 'meteo';
-  $mysql_pwd = 'snovadozhdi';
-  $mysql_port = 3306;
-
-  setlocale(LC_ALL,'ru_RU.UTF8');
-
-  $site_header = 'RVB.NAME';
-                
-?>