Systemd читает / etc / pm /…?

14

Есть ли в системах использование и systemdчтение сценариев /etc/pm/sleep.d/?

Я начинаю заключать, что ответ заключается в том, что systemdигнорирует эти сценарии. Если это правда, что замена?

Обновление: man systemd-sleepсостояния сценариев могут быть добавлены в /lib/systemd/system-sleep/. Подробности были недостаточны для меня, но я попытался изменить пример Arch wiki и создал /lib/systemd/system-sleep/root-resume.service.

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=simple
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target

Мое намерение состоит в том, чтобы перезапустить сетевой менеджер после возобновления, потому что иногда это не работает.

Кажется, это не то, что я хочу.

Шон
источник
Я обнаружил, что сценарии /etc/pm/sleep.d по-прежнему будут выполняться, если вы наберете sudo pm-suspendиз cmdline. Просто systemd не будет использовать его из своего рабочего процесса.
Томофуми

Ответы:

13

Скрипты в /etc/pm/config.d|power.d|sleep.dигнорируются при systemd. Вместо этого системный «блок» (сервис) должен быть создан и включен.

Чтобы возобновить работу сети после выхода системы из спящего режима, я создал файл /lib/systemd/system/root-resume.service:

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target

Затем я активировал сервис с sudo systemctl enable root-resume.service. Включение сервиса создает символическую ссылку для файла в/etc/systemd/system/suspend.target.wants/

В отличие от man systemd-sleepслужебных файлов, размещенных в /lib/systemd/system-sleep/, игнорируются.

Шон
источник
Да, именно по этой причине сценарии «перезагрузить сеть после приостановки» не работают для людей, работающих под управлением Ubuntu с systemd.
neo1691
Это должно быть создано как /etc/systemd/system/root-resume.service. Вы никогда не должны изменять файлы в / lib, так как они управляются менеджером пакетов, чтобы избежать ненужных и потенциальных сбоев при обновлении, не говоря уже об упрощении резервного копирования.
хакель
2

Нет, ни те , в /usr/lib/pm-utils/sleep.d. Но он запускает все сценарии (не служебные файлы) /lib/systemd/system-sleep/с установленными исполняемыми битами.

Вот пример для вызова pm-powersave, модифицированный из /usr/lib/pm-utils/sleep.d/00powersave.

#!/bin/sh

# do not run pm-powersave on ARM during suspend; the 1.5 seconds that it takes
# to run it don't nearly compensate the potentially slightly slower suspend
# operation in low power mode
ARCH=`uname -m`

case $1 in
    pre)  [ "$ARCH" != "${ARCH#arm}" ] || pm-powersave false ;;          
    post) pm-powersave ;;
esac
exit 0

$ 1 - это «пост» в резюме, «предварительно» в противном случае. $ 2 в обоих случаях содержит либо «приостановить», «спящий режим» или «гибридный сон».

Мартин Торнтон
источник