Как я могу запустить команду, если отключен служебный модуль systemd?

У меня есть следующий системный модуль systemd для установки порогов батареи моего ноутбука:

[Unit] Description=Set Battery Charge Thresholds [Service] Type=oneshot ExecStart=/usr/bin/tpacpi-bat -s --start 1 30 ExecStart=/usr/bin/tpacpi-bat -s --stop 1 85 RemainAfterExit=yes [Install] WantedBy=multi-user.target 

Я бы хотел, чтобы это был способ запуска команд при отключении сервисного модуля (так что я могу удобно установить пороговые значения обратно по умолчанию). Это возможно?

  • После обновления до Jessie управление сервисом не возвращает результат
  • systemd и несуществующие файлы .service: являются ли они универсальными?
  • Показать пользовательское загрузочное сообщение
  • Как уменьшить время загрузки beaglebone с помощью systemd
  • Выясните, в какое время машина была приостановлена
  • Почему разработчики пакетов Gentoo безоговорочно устанавливают системные файлы systemd (т. Е. Не зависят от флага USE)?
  • Почему sudo -i не устанавливает XDG_RUNTIME_DIR для целевого пользователя?
  • Установите umask для блока systemd
  • One Solution collect form web for “Как я могу запустить команду, если отключен служебный модуль systemd?”

    Взгляните на ExecStop или ExecStopPost

    ExecStop

    Команды, выполняемые для остановки службы, запускаются через ExecStart =. Этот аргумент принимает несколько команд, следуя той же схеме, что и для ExecStart = выше. Использование этого параметра является необязательным. После запуска команд, сконфигурированных в этой опции, все процессы, оставшиеся для службы, завершаются в соответствии с настройкой KillMode = (см. Systemd.kill (5)). Если этот параметр не указан, процесс прекращается путем отправки сигнала, указанного в KillSignal = при запросе остановки службы. Поддерживается подстановка переменных спецификатора и среды (включая $ MAINPID, см. Выше).

    Рекомендуется использовать этот параметр для команд, которые взаимодействуют с сервисом, запрашивающим чистое завершение. Когда команды, указанные с этой опцией, выполняются, следует предположить, что служба все еще полностью готова и может корректно реагировать на все команды. Для посмертных шагов очистки используйте ExecStopPost = вместо этого.

    ExecStopPost

    Дополнительные команды, которые выполняются после остановки службы. Сюда относятся случаи, когда были использованы команды, сконфигурированные в ExecStop =, где у службы нет ExecStop =, или где служба неожиданно завершилась. Этот аргумент принимает несколько команд, следуя той же схеме, что и для ExecStart =. Использование этих параметров является необязательным. Поддерживается подстановка переменных спецификатора и среды. Обратите внимание, что – в отличие от ExecStop = – команды, указанные этим параметром, вызываются, когда служба не запускается правильно и снова выключается.

    Рекомендуется использовать этот параметр для операций очистки, которые должны выполняться, даже если служба не запускалась правильно. Команды, настроенные с этим параметром, должны иметь возможность работать, даже если служба не запускалась на полпути и оставила не полностью инициализированные данные. Поскольку процессы службы уже завершены, когда выполняются команды, указанные с этим параметром, они не должны пытаться связываться с ними.

    Обратите внимание, что все команды, настроенные с этим параметром, вызывается с помощью кода результата службы, а также с кодом завершения и статусом основного процесса, установленным в переменных среды $ SERVICE_RESULT, $ EXIT_CODE и $ EXIT_STATUS, см. Systemd.exec (5) для деталей.

    Оба они могут использоваться для запуска команд, когда служба остановлена.

    Основные различия между ними:

    • ExecStop запускается, пока основной процесс все еще запущен, и будет работать только тогда, когда служба будет остановлена ​​после нормальной работы (что означает, что все службы ExecStart и ExecStartPre должны преуспеть, и все Conditions... также должны пройти.

    • ExecStopPost работает, даже если «служба неожиданно завершена», которая охватывает сбои. Самое большое преимущество этого – когда у вас несколько ExecStart s, если один из них преуспевает, а другой не работает, ExecStopPost можно использовать, чтобы попытаться очистить частичный успех.

    Interesting Posts

    Невозможно правильно использовать Powerline с xterm

    Извлечь URL из определенного шаблона (Google Alert)

    Отключить пусковую установку Ubuntu и панели при использовании полного экрана vmware

    Когда и зачем блокировать устройства нужно разделить?

    Проблемы с обновлением vi внутри экрана

    Как я могу сделать VIM полноценной IDE

    Как начать переговоры с racoon VPN IKE автоматически?

    Как работает эта команда vim: g / # / + 1t.`

    Как я периодически запускаю команду с очень коротким интервалом и получаю возврат?

    Ошибка при установке Manjaro

    awk или sed для соответствия регулярному выражению в определенной строке, выход true, если успех, false, иначе

    Как я могу управлять сервером, если отключен USB?

    Разница между менее сильным сигналом уничтожения -HUP (1) -INT (2) и -TERM (15)

    Как определить разные маршруты для глобальной и неглобальной зоны для одного и того же пункта назначения?

    lftp зеркальный локальный каталог на удаленный ftp-сервер без удаления удаленных файлов, которые отсутствуют локально

    Linux и Unix - лучшая ОС в мире.