Operating system for OpenComputers
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

43 linhas
977B

  1. --#include "module/syslog.lua"
  2. --#include "module/sched.lua"
  3. --#include "module/buffer.lua"
  4. --#include "module/osutil.lua"
  5. --#include "module/fs.lua"
  6. --#include "module/io.lua"
  7. --#include "module/devfs.lua"
  8. --#include "module/devfs/syslog.lua"
  9. --#include "module/component-get.lua"
  10. --#include "module/loadfile.lua"
  11. _OSVERSION=_OSVERSION or "PsychOS 2"
  12. os.spawn(function()
  13. os.setenv("PWD","/boot")
  14. io.input("/dev/null")
  15. io.output("/dev/syslog")
  16. local f = io.open("/boot/cfg/hostname","rb")
  17. local hostname = computer.address():sub(1,8)
  18. if f then
  19. hostname = f:read("*l")
  20. f:close()
  21. end
  22. os.setenv("HOSTNAME",hostname)
  23. syslog(string.format("Hostname set to %s",hostname))
  24. local pids = {}
  25. local rc = require "rc"
  26. for k,v in pairs(rc.cfg.enabled) do
  27. pids[v] = -1
  28. end
  29. while true do
  30. for k,v in pairs(pids) do
  31. if not os.taskInfo(v) then
  32. syslog("Starting service "..k)
  33. pids[k] = rc.start(k)
  34. end
  35. end
  36. coroutine.yield()
  37. end
  38. end, "init")
  39. os.sched()