--- a/plugins/mod_posix.lua Tue Jan 12 15:35:36 2010 +0000
+++ b/plugins/mod_posix.lua Wed Jan 13 00:03:22 2010 +0000
@@ -20,6 +20,7 @@
local logger_set = require "util.logger".setwriter;
local lfs = require "lfs";
+local stat = lfs.attributes;
local prosody = _G.prosody;
@@ -81,7 +82,8 @@
end
pidfile = module:get_option("pidfile");
if pidfile then
- pidfile_handle, err = io.open(pidfile, "a+");
+ local mode = stat(pidfile) and "r+" or "w+";
+ pidfile_handle, err = io.open(pidfile, mode);
if not pidfile_handle then
module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err);
prosody.shutdown("Couldn't write pidfile");