Временно останавливать все системные таймеры

На самом деле вы должны использовать либо

#! /bin/env sh

либо

#! /bin/env bash

так вы вызываете любую из оболочек тем способом, которым они установлены в данной системе.

Чтобы быть супер безопасным (например в случаях перезагрузки одного пользователя) используйте sh, в противном случае используйте bash.

3
08.10.2018, 16:07
2 ответа

Чтобы остановить все запущенные в данный момент таймеры, вы можете просто использовать:

systemctl stop '*.timer'

Чтобы перезапустить таймеры позже, вам нужно будет вспомнить, какие из них были запущены в данный момент.

timers=$(systemctl list-units --type=timer --state=active --no-legend | awk '{print $1}')
systemctl stop $timers
#...
systemctl start $timers

(По-видимому, шаблоны для юнитов не соответствуют неактивным юнитам, поэтому systemctl start '*.timer'не работает.)

9
27.01.2020, 21:21

Хороший вопрос. Я не вижу возможности для этого в man systemctlилиman systemd.timer

В относительно чистой системе, скорее всего, лишь небольшое их количество может работать во время теста. Таким образом, после того, как вы запустите команды systemctl stopв первый раз, в следующий раз сохраните команды остановки/запуска в bash-скриптах и ​​просто автоматизируйте команды остановки/запуска таким образом.

0
27.01.2020, 21:21

Теги

Похожие вопросы