用Lua编写守护进程

我想写一个Lua守护进程,用于监听TCP套接字,并允许处理一些用户数据。 我正在使用copas库使我的服务器能够同时处理多个客户端,但不知道如何将此服务器守护化。似乎copas没有提供这样的功能。有人知道如何在Lua中创建守护进程吗?

这是我定义服务器的代码的一部分:

function handler(c, host, port)
    local peer = host .. ":" .. port
    print("connection from ", peer)
    while 1 do
        command = c:receive"*l"
        c:send(router(command))
    end
end

copas.addserver(assert(socket.bind("127.0.0.1", 8888)),
                        function(c) return handler(copas.wrap(c), c:getpeername()) end
)

copas.loop()

提前感谢!

点赞
用户2420301
用户2420301

请看下面的两个模块,它们可以精准地完成你想要的任务(而且是我们正好用它们完成的):

2017-07-01 14:27:52
用户5684061
用户5684061

感谢回答。我已经使用了 lua-posix 库来完成,结果比我预想的要简单。现在代码看起来是这样的:

local posix = require("posix")

--一些代码在此处

pid = posix.fork()
if pid == 0 then
    print("PID: " .. posix.getpid('pid'))
    loop = copas.loop()
else
    os.exit()
end

P.S. 我意识到这是一个非常简单的解决方案,可能仅用作示例。

2017-07-01 15:47:34