# HG changeset patch # User Matthew Wild # Date 1240426798 -3600 # Node ID 409f22d0430f4ec1ea4bf5924cdcbdb956bf5158 # Parent ec013f93de81f0979e9b1208f620aea851c47556 mod_posix: Remove pidfile on exit diff -r ec013f93de81 -r 409f22d0430f plugins/mod_posix.lua --- a/plugins/mod_posix.lua Wed Apr 22 19:49:58 2009 +0100 +++ b/plugins/mod_posix.lua Wed Apr 22 19:59:58 2009 +0100 @@ -14,7 +14,19 @@ module.host = "*"; -- we're a global module +local pidfile_written; + +local function remove_pidfile() + if pidfile_written then + os.remove(pidfile); + pidfile_written = nil; + end +end + local function write_pidfile() + if pidfile_written then + remove_pidfile(); + end local pidfile = config.get("*", "core", "pidfile"); if pidfile then local pf, err = io.open(pidfile, "w+"); @@ -23,6 +35,7 @@ else pf:write(tostring(pposix.getpid())); pf:close(); + pidfile_written = pidfile; end end end @@ -80,10 +93,12 @@ end module:add_event_hook("server-starting", daemonize_server); else + -- Not going to daemonize, so write the pid of this process write_pidfile(); - -- Not going to daemonize, but let's write the pidfile anyway end +module:add_event_hook("server-stopped", remove_pidfile); + -- Set signal handler if signal.signal then signal.signal("SIGTERM", function ()