--- Revision None +++ Revision 663534393461 @@ -0,0 +1,77 @@ +diff --git a/bin/couchdb.tpl.in b/bin/couchdb.tpl.in +index 370bdb4..eab27b5 100644 +--- a/bin/couchdb.tpl.in ++++ b/bin/couchdb.tpl.in +@@ -15,7 +15,12 @@ + BACKGROUND=false + DEFAULT_CONFIG_DIR=%localconfdir%/default.d + DEFAULT_CONFIG_FILE=%localconfdir%/%defaultini% +-ERL_START_OPTIONS="-sasl errlog_type error +K true +A 4" ++ERL_OS_MON_OPTIONS="-os_mon \ ++ start_memsup false \ ++ start_cpu_sup false \ ++ disk_space_check_interval 1 \ ++ disk_almost_full_threshold 1" ++ERL_START_OPTIONS="$ERL_OS_MON_OPTIONS -sasl errlog_type error +K true +A 4" + HEART_BEAT_TIMEOUT=11 + HEART_COMMAND="%bindir%/%couchdb_command_name% -k" + INTERACTIVE=false +diff --git a/src/couchdb/couch_app.erl b/src/couchdb/couch_app.erl +index 232953d..f109780 100644 +--- a/src/couchdb/couch_app.erl ++++ b/src/couchdb/couch_app.erl +@@ -20,7 +20,7 @@ + + start(_Type, DefaultIniFiles) -> + IniFiles = get_ini_files(DefaultIniFiles), +- case start_apps([crypto, public_key, sasl, inets, oauth, ssl, ibrowse, mochiweb]) of ++ case start_apps([crypto, public_key, sasl, inets, oauth, ssl, ibrowse, mochiweb, os_mon]) of + ok -> + couch_server_sup:start_link(IniFiles); + {error, Reason} -> +diff --git a/src/couchdb/couch_compaction_daemon.erl b/src/couchdb/couch_compaction_daemon.erl +index ab85db8..6a0f140 100644 +--- a/src/couchdb/couch_compaction_daemon.erl ++++ b/src/couchdb/couch_compaction_daemon.erl +@@ -56,38 +56,15 @@ init(_) -> + ?CONFIG_ETS = ets:new(?CONFIG_ETS, [named_table, set, protected]), + ok = couch_config:register(fun ?MODULE:config_change/3), + load_config(), +- case start_os_mon() of +- ok -> +- Server = self(), +- Loop = spawn_link(fun() -> compact_loop(Server) end), +- {ok, #state{loop_pid = Loop}}; +- Error -> +- {stop, Error} +- end. ++ Server = self(), ++ Loop = spawn_link(fun() -> compact_loop(Server) end), ++ {ok, #state{loop_pid = Loop}}. + + + config_change("compactions", DbName, NewValue) -> + ok = gen_server:cast(?MODULE, {config_update, DbName, NewValue}). + + +-start_os_mon() -> +- _ = application:load(os_mon), +- ok = application:set_env( +- os_mon, disk_space_check_interval, ?DISK_CHECK_PERIOD), +- ok = application:set_env(os_mon, disk_almost_full_threshold, 1), +- ok = application:set_env(os_mon, start_memsup, false), +- ok = application:set_env(os_mon, start_cpu_sup, false), +- _ = application:start(sasl), +- case application:start(os_mon) of +- ok -> +- ok; +- {error, {already_started, os_mon}} -> +- ok; +- Error -> +- Error +- end. +- +- + handle_cast({config_update, DbName, deleted}, State) -> + true = ets:delete(?CONFIG_ETS, ?l2b(DbName)), + {noreply, State};