# salt.modules.minion

Module to provide information about minions and handle killing and restarting minions

salt.modules.minion.kill(timeout=15)

  Kill the salt minion.

  timeout

    int seconds to wait for the minion to die.

  If you have a monitor that restarts `salt-minion` when it dies then this is a great way to restart after a minion upgrade.

  CLI Example:

      salt minion[12] minion.kill

      minion1:
          ----------
          killed:
              7874
          retcode:
              0
      minion2:
          ----------
          killed:
              29071
          retcode:
              0

  The result of the salt command shows the process ID of the minions and the results of a kill signal to the minion in as the `retcode` value: `0` is success, anything else is a failure.

salt.modules.minion.list_()

  Return a list of accepted, denied, unaccepted and rejected keys. This is the same output as salt-key -L

  CLI Example:

      salt 'master' minion.list

salt.modules.minion.restart(systemd=True, win_service=True, schedule_retry=False, retry_delay=180)

  Restart the salt minion.

  The method to restart the minion will be chosen as follows:

  > If `minion_restart_command` is set in the minion configuration then the command specified will be used to restart the minion.

  > If the minion is running as a systemd service then the minion will be restarted using the systemd_service module, unless `systemd` is set to `False`

  > If the minion is running as a Windows service then the minion will be restarted using the win_service module, unless `win_service` is set to `False`

  > If the salt-minion process is running in daemon mode (the `-d` argument is present in `argv`) then the minion will be killed and restarted using the same command line arguments, if possible.

  > If the salt-minion process is running in the foreground (the `-d` argument is not present in `argv`) then the minion will be killed but not restarted. This behavior is intended for minion processes that are managed by a process supervisor.

  systemd

    If set to `False` then systemd will not be used to restart the minion. Defaults to `True`.

  win_service

    If set to `False` then the Windows service manager will not be used to restart the minion. Defaults to `True`.

  schedule_retry

    If set to `True` then a scheduled job will be added to start the minion if it has failed to restart after the retry_delay

  retry_delay

    The amount of time to wait before attempting to start the minion if it has failed to restart. Defaults to 180 seconds.

  CLI Examples:

      salt minion[12] minion.restart

      minion1:
      ----------
          comment:
              - Using systemctl to restart salt-minion
              - Service restart successful
          killed:
              None
          restart:
              ----------
          retcode:
              0
          service_restart:
              ----------
              result:
                  True
      minion2:
          ----------
          comment:
              - Using windows service manager to restart salt-minion
              - Service restart successful
          killed:
              None
          restart:
              ----------
          retcode:
              0
          service_restart:
              ----------
              result:
                  True

  The result shows that `minion1` was restarted using systemd and `minion2` was restarted using the Windows service manager. The `service_restart` field indicates the result of the service restart operation. The `killed` field is `None` because the minion was restarted using the service manager and not by killing the process. The `restart` field is empty because the minion was restarted using the service manager and not by running the command line arguments of the minion process.

      salt minion[12] minion.restart

      minion1:
          ----------
          comment:
              - Restart using process argv:
              -     /home/omniture/install/bin/salt-minion
              -     -d
              -     -c
              -     /home/omniture/install/etc/salt
          killed:
              10070
          restart:
              ----------
              stderr:
              stdout:
          retcode:
              0
      minion2:
          ----------
          comment:
              - Using configuration minion_restart_command:
              -     /home/omniture/install/bin/salt-minion
              -     --not-an-option
              -     -d
              -     -c
              -     /home/omniture/install/etc/salt
              - Restart failed
          killed:
              10896
          restart:
              ----------
              stderr:
                  Usage: salt-minion

                  salt-minion: error: no such option: --not-an-option
              stdout:
          retcode:
              64

  The result of the command shows the process ID of `minion1` that is shutdown (killed) and the results of the restart. If there is a failure in the restart it will be reflected in a non-zero `retcode` and possibly output in the `stderr` and/or `stdout` values along with addition information in the `comment` field as is demonstrated with `minion2`.