我想写一个监听TCP套接字的lua守护进程,并允许处理一些用户数据。我正在使用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()提前感谢!
发布于 2017-07-01 22:27:52
看看这两个模块,它们可以做你想做的事情(是的,我们正是为了这个目的而使用它们):
https://github.com/arcapos/luaunix https://github.com/arcapos/luanet
发布于 2017-07-01 23:47:35
感谢您的回复。我已经用lua-posix库做到了这一点,结果比我预想的要简单。现在看起来是这样的:
local posix = require("posix")
--some code here
pid = posix.fork()
if pid == 0 then
print("PID: " .. posix.getpid('pid'))
loop = copas.loop()
else
os.exit()
end附注:我意识到这是一个非常简单的解决方案,可能只是一个例子。
https://stackoverflow.com/questions/44861732
复制相似问题