improved the rc lib, assuming the start function returns a pid

This commit is contained in:
Izaya 2020-03-24 16:27:51 +11:00
parent 1f97e90066
commit 1c252126e8
1 changed files with 10 additions and 1 deletions

View File

@ -1,6 +1,7 @@
local serial = require "serialization"
local rc = {}
rc.pids = {}
local service = {}
local cfg = {}
cfg.enabled = {}
@ -37,12 +38,20 @@ end
function rc.stop(name,...)
if not service[name] then return false, "service not found" end
service[name].stop(...)
coroutine.yield()
if rc.pids[name] then
os.kill(rc.pids[name])
end
rc.pids[name] = nil
end
function rc.start(name,...)
rc.load(name)
if not service[name] then return false, "service not found" end
return service[name].start(...)
local rv = {service[name].start(...)}
if type(rv[1]) == "number" then
rc.pids[name] = rv[1]
end
end
function rc.restart(name)