Mercurial > prosody-hg
comparison plugins/mod_posix.lua @ 723:c1e7d280c174
mod_posix/pposix: Fix reporting of incorrect PID on daemonization. Log correct PID, and support writing a pidfile (pidfile = '/path/to/prosody.pid' in config). Added getpid() to pposix and improved function names.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 15 Jan 2009 20:59:36 +0000 |
| parents | 63456c9d0522 |
| children | fa45dfb27ee5 |
comparison
equal
deleted
inserted
replaced
| 722:63456c9d0522 | 723:c1e7d280c174 |
|---|---|
| 40 | 40 |
| 41 local ok, ret = pposix.daemonize(); | 41 local ok, ret = pposix.daemonize(); |
| 42 if not ok then | 42 if not ok then |
| 43 log("error", "Failed to daemonize: %s", ret); | 43 log("error", "Failed to daemonize: %s", ret); |
| 44 elseif ret and ret > 0 then | 44 elseif ret and ret > 0 then |
| 45 log("info", "Daemonized to pid %d", ret); | |
| 46 os.exit(0); | 45 os.exit(0); |
| 47 else | 46 else |
| 48 if logwriter then | 47 if logwriter then |
| 49 local ok, ret = logger_set(logwriter); | 48 local ok, ret = logger_set(logwriter); |
| 50 if not ok then | 49 if not ok then |
| 51 log("error", "Couldn't set new log output: %s", ret); | 50 log("error", "Couldn't set new log output: %s", ret); |
| 52 end | 51 end |
| 53 end | 52 end |
| 54 log("info", "Successfully daemonized"); | 53 log("info", "Successfully daemonized to PID %d", pposix.getpid()); |
| 54 | |
| 55 local pidfile = config.get("*", "core", "pidfile"); | |
| 56 if pidfile then | |
| 57 local pf, err = io.open(pidfile, "w+"); | |
| 58 if not pf then | |
| 59 log("error", "Couldn't write pidfile; %s", err); | |
| 60 else | |
| 61 pf:write(tostring(pposix.getpid())); | |
| 62 pf:close(); | |
| 63 end | |
| 64 end | |
| 55 end | 65 end |
| 56 end | 66 end |
| 57 module:add_event_hook("server-starting", daemonize_server); | 67 module:add_event_hook("server-starting", daemonize_server); |
| 58 end | 68 end |
