diff options
-rw-r--r-- | plugins/mod_posix.lua | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/plugins/mod_posix.lua b/plugins/mod_posix.lua index 11e3c418..77b2f2a4 100644 --- a/plugins/mod_posix.lua +++ b/plugins/mod_posix.lua @@ -95,13 +95,17 @@ local function write_pidfile() pidfile_handle = nil; prosody.shutdown("Prosody already running"); else + pidfile_handle:close(); pidfile_handle, err = io.open(pidfile, "w+"); if not pidfile_handle then module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err); prosody.shutdown("Couldn't write pidfile"); + else + if lfs.lock(pidfile_handle, "w") then + pidfile_handle:write(tostring(pposix.getpid())); + pidfile_handle:flush(); + end end - pidfile_handle:write(tostring(pposix.getpid())); - pidfile_handle:flush(); end end end |