equal
deleted
inserted
replaced
18 end |
18 end |
19 |
19 |
20 local logger_set = require "util.logger".setwriter; |
20 local logger_set = require "util.logger".setwriter; |
21 |
21 |
22 local lfs = require "lfs"; |
22 local lfs = require "lfs"; |
|
23 local stat = lfs.attributes; |
23 |
24 |
24 local prosody = _G.prosody; |
25 local prosody = _G.prosody; |
25 |
26 |
26 module.host = "*"; -- we're a global module |
27 module.host = "*"; -- we're a global module |
27 |
28 |
76 if pidfile_handle then |
77 if pidfile_handle then |
77 remove_pidfile(); |
78 remove_pidfile(); |
78 end |
79 end |
79 pidfile = module:get_option("pidfile"); |
80 pidfile = module:get_option("pidfile"); |
80 if pidfile then |
81 if pidfile then |
81 pidfile_handle, err = io.open(pidfile, "a+"); |
82 local mode = stat(pidfile) and "r+" or "w+"; |
|
83 pidfile_handle, err = io.open(pidfile, mode); |
82 if not pidfile_handle then |
84 if not pidfile_handle then |
83 module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err); |
85 module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err); |
84 prosody.shutdown("Couldn't write pidfile"); |
86 prosody.shutdown("Couldn't write pidfile"); |
85 else |
87 else |
86 if not lfs.lock(pidfile_handle, "w") then -- Exclusive lock |
88 if not lfs.lock(pidfile_handle, "w") then -- Exclusive lock |