[role="xpack"] [testenv="basic"] [[start-stop-ilm]] == Start and stop {ilm} All indices that are managed by {ilm-init} will continue to execute their policies. There may be times when this is not desired on certain indices, or maybe even all the indices in a cluster. For example, maybe there are scheduled maintenance windows when cluster topology changes are desired that may impact running {ilm-init} actions. For this reason, {ilm-init} has two ways to disable operations. When stopping {ilm-init}, snapshot lifecycle management operations are also stopped, this means that no scheduled snapshots are created (currently ongoing snapshots are unaffected). Normally, {ilm-init} will be running by default. To see the current operating status of {ilm-init}, use the <> to see the current state of {ilm-init}. //// [source,console] -------------------------------------------------- PUT _ilm/policy/my_policy { "policy": { "phases": { "warm": { "min_age": "10d", "actions": { "forcemerge": { "max_num_segments": 1 } } }, "delete": { "min_age": "30d", "actions": { "delete": {} } } } } } PUT my_index { "settings": { "index.lifecycle.name": "my_policy" } } -------------------------------------------------- //// [source,console] -------------------------------------------------- GET _ilm/status -------------------------------------------------- If the request does not encounter errors, you receive the following result: [source,console-result] -------------------------------------------------- { "operation_mode": "RUNNING" } -------------------------------------------------- The operating modes of {ilm-init}: [[ilm-operating-modes]] .{ilm-init} Operating Modes [options="header"] |=== |Name |Description |RUNNING |Normal operation where all policies are executed as normal |STOPPING|{ilm-init} has received a request to stop but is still processing some policies |STOPPED |This represents a state where no policies are executed |=== [discrete] === Stopping {ilm-init} The {ilm-init} service can be paused such that no further steps will be executed using the <>. [source,console] -------------------------------------------------- POST _ilm/stop -------------------------------------------------- // TEST[continued] When stopped, all further policy actions will be halted. This will be reflected in the Status API //// [source,console] -------------------------------------------------- GET _ilm/status -------------------------------------------------- // TEST[continued] //// [source,console-result] -------------------------------------------------- { "operation_mode": "STOPPING" } -------------------------------------------------- // TESTRESPONSE[s/"STOPPING"/$body.operation_mode/] The {ilm-init} service will then, asynchronously, run all policies to a point where it is safe to stop. After {ilm-init} verifies that it is safe, it will move to the `STOPPED` mode. //// [source,console] -------------------------------------------------- PUT trigger_ilm_cs_action GET _ilm/status -------------------------------------------------- // TEST[continued] //// [source,console-result] -------------------------------------------------- { "operation_mode": "STOPPED" } -------------------------------------------------- // TESTRESPONSE[s/"STOPPED"/$body.operation_mode/] [discrete] === Starting {ilm-init} To start {ilm-init} and continue executing policies, use the <>. [source,console] -------------------------------------------------- POST _ilm/start -------------------------------------------------- // TEST[continued] //// [source,console] -------------------------------------------------- GET _ilm/status -------------------------------------------------- // TEST[continued] //// The Start API will send a request to the {ilm-init} service to immediately begin normal operations. [source,console-result] -------------------------------------------------- { "operation_mode": "RUNNING" } --------------------------------------------------