首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Lua编写守护进程

用Lua编写守护进程
EN

Stack Overflow用户
提问于 2017-07-01 21:55:48
回答 2查看 1.2K关注 0票数 0

我想写一个监听TCP套接字的lua守护进程,并允许处理一些用户数据。我正在使用copas库来让我的服务器同时与多个客户端一起工作,但是我不知道如何守护这个服务器。似乎copas没有提供这样的功能。有谁知道如何在Lua中创建守护进程?

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

代码语言:javascript
复制
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()

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2017-07-01 22:27:52

看看这两个模块,它们可以做你想做的事情(是的,我们正是为了这个目的而使用它们):

https://github.com/arcapos/luaunix https://github.com/arcapos/luanet

票数 1
EN

Stack Overflow用户

发布于 2017-07-01 23:47:35

感谢您的回复。我已经用lua-posix库做到了这一点,结果比我预想的要简单。现在看起来是这样的:

代码语言:javascript
复制
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

附注:我意识到这是一个非常简单的解决方案,可能只是一个例子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44861732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档