如何使用 LUA 杀死一个子进程?

我正在尝试使用 Lua 来杀死一个进程:我的 bash 脚本“run.sh”每 2 秒打印一次字符串,到目前为止我能够实时捕获输出,但我需要在向我的电报机器人发送命令时也退出该进程

这是我的实际代码:

local bot, extension = require("lua-bot-api").configure('myBotToken')

local function test()
    local pipe = io.popen'/home/ubuntu/workspace/LmBot/run.sh'
        repeat
            local c = pipe:read("*line")
            if c then
                io.write(c)
                io.flush()
                bot.sendMessage(msg.from.id,c,"Markdown")
            end
        until not c
    pipe:close()
end

extension.onTextReceive = function(msg)

    local matches = {msg.text:match('^/(.+)$')}

    if(matches[1]=='start')then
        test()
    end
end

extension.run()

正如您所看到的,当我发送命令 /start 时,它会运行我的 bash 脚本(那是一个子进程吗?我是对的吗?)并实时按行解析输出后将消息发送给我。现在我需要能够杀死之前启动的进程,有使用 lua 的方法吗?

提前感谢您们的回答 :)

点赞