#!/usr/bin/lua
local json = require("json")
+local signal = require("posix.signal")
require "wm_util"
end
if not (sensor_type==nil or sensor_id==nil or sensor_type=='' or sensor_id=='') then
- if next(sensor)==nil then
- sensor["command"]="alarm"
- end
local record = {}
for k,v in pairs(sensor) do
storeRecord(sensor_id,sensor_type,k,v)
if not mqtt_client:socket() then
mqtt_client:reconnect()
end
- mqtt_client:publish(mqtt_path,v,0,0)
+ mqtt_client:publish(mqtt_path,v,0,false)
mqtt_client:loop()
end
end
return '{'..name..'}'
end
end)
- mqtt_client:publish(mqtt_path,v,0,0)
+ if not mqtt_client:socket() then
+ mqtt_client:reconnect()
+ end
+ mqtt_client:publish(mqtt_path,v,0,false)
mqtt_client:loop()
end
end
return '{'..name..'}'
end
end)
- mqtt_client:publish(mqtt_path,msg_body,0,0)
+ if not mqtt_client:socket() then
+ mqtt_client:reconnect()
+ end
+ mqtt_client:publish(mqtt_path,msg_body,0,false)
mqtt_client:loop()
end
if alarm_exec then
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())
io.close(f)
end)
end
+
end)
end