diff options
| author | ruki <[email protected]> | 2022-05-12 00:41:46 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-05-12 00:41:46 +0800 |
| commit | 1a3ccc694b0370707be4e1aad24ee7903040b100 (patch) | |
| tree | 97714fd4c03a89b0a853a0e7dcd9e75ae9e4f30e | |
| parent | c3d0061abf94551ea8b1b93643cd0885ad60db4f (diff) | |
stop service
| -rw-r--r-- | xmake/modules/private/service/stop_service.lua | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/xmake/modules/private/service/stop_service.lua b/xmake/modules/private/service/stop_service.lua index 9d1d001f6..0575db0d5 100644 --- a/xmake/modules/private/service/stop_service.lua +++ b/xmake/modules/private/service/stop_service.lua @@ -20,7 +20,9 @@ -- imports import("core.base.option") +import("private.service.config") import("private.service.remote_build.server", {alias = "remote_build_server"}) +import("private.service.distcc_build.server", {alias = "distcc_build_server"}) function _stop_remote_build_server(...) local pidfile = remote_build_server(...):pidfile() @@ -34,7 +36,26 @@ function _stop_remote_build_server(...) else os.run("kill -9 %s", pid) end - print("remote_build_server[%s]: stopped", pid) + print("service[%s]: stopped", pid) + end} + end + os.rm(pidfile) + end +end + +function _stop_distcc_build_server(...) + local pidfile = distcc_build_server(...):pidfile() + if pidfile and os.isfile(pidfile) then + local pid = io.readfile(pidfile) + if pid then + pid = pid:trim() + try { function () + if is_host("windows") then + os.run("taskkill /f /t /pid %s", pid) + else + os.run("kill -9 %s", pid) + end + print("service[%s]: stopped", pid) end} end os.rm(pidfile) @@ -42,7 +63,7 @@ function _stop_remote_build_server(...) end function main(...) - local stoppers = {_stop_remote_build_server} + local stoppers = {_stop_remote_build_server, _stop_distcc_build_server} for _, stop_server in ipairs(stoppers) do stop_server(...) end |
