diff options
author | Simon MacMullen <simon@lshift.net> | 2008-11-25 15:33:18 +0000 |
---|---|---|
committer | Simon MacMullen <simon@lshift.net> | 2008-11-25 15:33:18 +0000 |
commit | 3682c6b2e7433d59721402eeb2d55244c648ad31 (patch) | |
tree | 95ddd9a98b4ab15d794d7eb836777667530840f3 /src/rabbit_alarm.erl | |
parent | b9387766fd7b743f874c3dd85df9db8c4a7cffb2 (diff) | |
download | rabbitmq-server-3682c6b2e7433d59721402eeb2d55244c648ad31.tar.gz |
Start memsup programmatically rather than starting as standard and then
killing it if we don't want it => doesn't mess up the banner on startup
Diffstat (limited to 'src/rabbit_alarm.erl')
-rw-r--r-- | src/rabbit_alarm.erl | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index 5ba88a30..e2f468b7 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -50,17 +50,15 @@ %%---------------------------------------------------------------------------- start() -> + ok = alarm_handler:add_alarm_handler(?MODULE), case os:type() of {unix, linux} -> %% memsup doesn't take account of buffers or cache when considering %% "free" memory - therefore on Linux we can get memory alarms %% very easily without any pressure existing on memory at all. %% Therefore we need to use our own simple memory monitor - - supervisor:terminate_child(os_mon_sup, memsup), - supervisor:delete_child(os_mon_sup, memsup), + rabbit:start_child(rabbit_linux_memory), - ok; _ -> %% The default memsup check interval is 1 minute, which is way too @@ -75,11 +73,16 @@ start() -> %% check has completed, i.e. after one minute. So if rabbit eats %% all the memory within the first minute after startup then we %% are out of luck. - + + %% Start memsup programmatically rather than via the rabbitmq-server + %% script. This is not quite the right thing to do as os_mon checks + %% to see if memsup is available before starting it, but as memsup + %% is available everywhere (even on VXWorks) it should be ok. + supervisor:start_child(os_mon_sup, {memsup, {memsup, start_link, []}, + permanent, 2000, worker, [memsup]}), ok = os_mon:call(memsup, {set_check_interval, ?MEMSUP_CHECK_INTERVAL}, infinity) - end, - ok = alarm_handler:add_alarm_handler(?MODULE). + end. stop() -> ok = alarm_handler:delete_alarm_handler(?MODULE). |