plugins/mod_posix.lua

changeset 2795
d6fcd13c07e7
parent 2793
08892e3f24bd
child 2923
b7049746bd29
--- a/plugins/mod_posix.lua	Mon Jan 11 00:14:33 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;
 
@@ -78,7 +79,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