Comparison

plugins/mod_posix.lua @ 1062:f9a1ac50782b

mod_posix: Fix calls to log() (replace with module:log) and make some global accesses explicit
author Matthew Wild <mwild1@gmail.com>
date Thu, 23 Apr 2009 21:35:24 +0100
parent 1061:8c5876378c6f
child 1066:0cb325970a50
child 1092:b547967d87fc
comparison
equal deleted inserted replaced
1061:8c5876378c6f 1062:f9a1ac50782b
4 local pposix = assert(require "util.pposix"); 4 local pposix = assert(require "util.pposix");
5 if pposix._VERSION ~= want_pposix_version then module:log("warn", "Unknown version (%s) of binary pposix module, expected %s", tostring(pposix._VERSION), want_pposix_version); end 5 if pposix._VERSION ~= want_pposix_version then module:log("warn", "Unknown version (%s) of binary pposix module, expected %s", tostring(pposix._VERSION), want_pposix_version); end
6 6
7 local signal = select(2, pcall(require, "util.signal")); 7 local signal = select(2, pcall(require, "util.signal"));
8 if type(signal) == "string" then 8 if type(signal) == "string" then
9 log("warn", "Couldn't load signal library, won't respond to SIGTERM"); 9 module:log("warn", "Couldn't load signal library, won't respond to SIGTERM");
10 end 10 end
11 11
12 local config_get = require "core.configmanager".get; 12 local config_get = require "core.configmanager".get;
13 local logger_set = require "util.logger".setwriter; 13 local logger_set = require "util.logger".setwriter;
14 14
25 25
26 local function write_pidfile() 26 local function write_pidfile()
27 if pidfile_written then 27 if pidfile_written then
28 remove_pidfile(); 28 remove_pidfile();
29 end 29 end
30 local pidfile = config.get("*", "core", "pidfile"); 30 local pidfile = config_get("*", "core", "pidfile");
31 if pidfile then 31 if pidfile then
32 local pf, err = io.open(pidfile, "w+"); 32 local pf, err = io.open(pidfile, "w+");
33 if not pf then 33 if not pf then
34 log("error", "Couldn't write pidfile; %s", err); 34 module:log("error", "Couldn't write pidfile; %s", err);
35 else 35 else
36 pf:write(tostring(pposix.getpid())); 36 pf:write(tostring(pposix.getpid()));
37 pf:close(); 37 pf:close();
38 pidfile_written = pidfile; 38 pidfile_written = pidfile;
39 end 39 end
59 59
60 if not config_get("*", "core", "no_daemonize") then 60 if not config_get("*", "core", "no_daemonize") then
61 local function daemonize_server() 61 local function daemonize_server()
62 local ok, ret = pposix.daemonize(); 62 local ok, ret = pposix.daemonize();
63 if not ok then 63 if not ok then
64 log("error", "Failed to daemonize: %s", ret); 64 module:log("error", "Failed to daemonize: %s", ret);
65 elseif ret and ret > 0 then 65 elseif ret and ret > 0 then
66 os.exit(0); 66 os.exit(0);
67 else 67 else
68 log("info", "Successfully daemonized to PID %d", pposix.getpid()); 68 module:log("info", "Successfully daemonized to PID %d", pposix.getpid());
69 write_pidfile(); 69 write_pidfile();
70 end 70 end
71 end 71 end
72 module:add_event_hook("server-starting", daemonize_server); 72 module:add_event_hook("server-starting", daemonize_server);
73 else 73 else
78 module:add_event_hook("server-stopped", remove_pidfile); 78 module:add_event_hook("server-stopped", remove_pidfile);
79 79
80 -- Set signal handler 80 -- Set signal handler
81 if signal.signal then 81 if signal.signal then
82 signal.signal("SIGTERM", function () 82 signal.signal("SIGTERM", function ()
83 log("warn", "Received SIGTERM..."); 83 module:log("warn", "Received SIGTERM...");
84 unlock_globals(); 84 _G.unlock_globals();
85 if prosody_shutdown then 85 if _G.prosody_shutdown then
86 prosody_shutdown("Received SIGTERM"); 86 _G.prosody_shutdown("Received SIGTERM");
87 else 87 else
88 log("warn", "...no prosody_shutdown(), ignoring."); 88 module:log("warn", "...no prosody_shutdown(), ignoring.");
89 end 89 end
90 lock_globals(); 90 _G.lock_globals();
91 end); 91 end);
92 end 92 end