Software /
code /
prosody
Changeset
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 |
parents | 3339:7893055e54d1 |
children | 3341:a8a3e662fea7 |
files | plugins/mod_posix.lua |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_posix.lua Fri Jul 09 01:09:57 2010 +0100 +++ b/plugins/mod_posix.lua Fri Jul 09 01:16:09 2010 +0100 @@ -95,6 +95,11 @@ pidfile_handle = nil; prosody.shutdown("Prosody already running"); else + pidfile_handle, err = io.open(pidfile, "w+"); + if not pidfile_handle then + module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err); + prosody.shutdown("Couldn't write pidfile"); + end pidfile_handle:write(tostring(pposix.getpid())); pidfile_handle:flush(); end