Software /
code /
prosody
Comparison
plugins/mod_posix.lua @ 3340:0769cc5f34b6
mod_posix: Truncate the pidfile before writing to ensure that we never overwrite with a PID shorter than the previous, and end with an invalid PID in the file.
author | Brian Cully <bjc@junctionnetworks.com> |
---|---|
date | Fri, 09 Jul 2010 01:16:09 +0100 |
parent | 3029:0c7beabfed5b |
child | 3341:a8a3e662fea7 |
comparison
equal
deleted
inserted
replaced
3339:7893055e54d1 | 3340:0769cc5f34b6 |
---|---|
93 local other_pid = pidfile_handle:read("*a"); | 93 local other_pid = pidfile_handle:read("*a"); |
94 module:log("error", "Another Prosody instance seems to be running with PID %s, quitting", other_pid); | 94 module:log("error", "Another Prosody instance seems to be running with PID %s, quitting", other_pid); |
95 pidfile_handle = nil; | 95 pidfile_handle = nil; |
96 prosody.shutdown("Prosody already running"); | 96 prosody.shutdown("Prosody already running"); |
97 else | 97 else |
98 pidfile_handle, err = io.open(pidfile, "w+"); | |
99 if not pidfile_handle then | |
100 module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err); | |
101 prosody.shutdown("Couldn't write pidfile"); | |
102 end | |
98 pidfile_handle:write(tostring(pposix.getpid())); | 103 pidfile_handle:write(tostring(pposix.getpid())); |
99 pidfile_handle:flush(); | 104 pidfile_handle:flush(); |
100 end | 105 end |
101 end | 106 end |
102 end | 107 end |