plugins/mod_posix.lua

changeset 2456
260601859c9f
parent 2455
0b3184f3c9e4
child 2925
692b3c6c5bd2
--- 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");

mercurial