aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mod_posix.lua8
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