|
|
@@ -8,6 +8,38 @@ |
|
|
|
--#include "module/devfs/syslog.lua" |
|
|
|
--#include "module/loadfile.lua" |
|
|
|
--#include "module/vt-task.lua" |
|
|
|
os.spawnfile("/boot/exec/init.lua") |
|
|
|
|
|
|
|
os.spawn(function() |
|
|
|
os.setenv("PWD","/boot") |
|
|
|
io.input("/dev/null") |
|
|
|
io.output("/dev/syslog") |
|
|
|
local f = io.open("/boot/cfg/hostname","rb") |
|
|
|
local hostname = computer.address():sub(1,8) |
|
|
|
if f then |
|
|
|
hostname = f:read("*l") |
|
|
|
f:close() |
|
|
|
end |
|
|
|
os.setenv("HOSTNAME",hostname) |
|
|
|
syslog(string.format("Hostname set to %s",hostname)) |
|
|
|
local pids = {} |
|
|
|
local function loadlist() |
|
|
|
local f = io.open("/boot/cfg/init.txt","rb") |
|
|
|
if not f then return false end |
|
|
|
for line in f:read("*a"):gmatch("[^\r\n]+") do |
|
|
|
pids[line] = -1 |
|
|
|
end |
|
|
|
f:close() |
|
|
|
end |
|
|
|
loadlist() |
|
|
|
while true do |
|
|
|
for k,v in pairs(pids) do |
|
|
|
if not os.taskInfo(v) then |
|
|
|
syslog("Starting service "..k) |
|
|
|
pids[k] = os.spawnfile("/boot/service/"..k) |
|
|
|
end |
|
|
|
end |
|
|
|
coroutine.yield() |
|
|
|
end |
|
|
|
end, "init") |
|
|
|
|
|
|
|
os.sched() |