summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-05-12 00:41:46 +0800
committerruki <[email protected]>2022-05-12 00:41:46 +0800
commit1a3ccc694b0370707be4e1aad24ee7903040b100 (patch)
tree97714fd4c03a89b0a853a0e7dcd9e75ae9e4f30e
parentc3d0061abf94551ea8b1b93643cd0885ad60db4f (diff)
stop service
-rw-r--r--xmake/modules/private/service/stop_service.lua25
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