|
|
@@ -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) |
|
|
|