Чи читає Systemd / etc / pm /…?


14

Чи працюють системи, що використовують systemdсценарії для читання та виконання /etc/pm/sleep.d/?

Я починаю робити висновок, що systemdігнорує ці сценарії. Якщо це правда, що таке заміна?

Оновлення: man systemd-sleepсценарії станів можуть бути додані до /lib/systemd/system-sleep/. Деталей для мене було недостатньо, але я спробував модифікувати приклад вікі Arch і створив /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ігноруються. Натомість повинен бути створений та включений системний "блок" (послуга).

Для відновлення роботи мережі після відновлення системи сну я створив файл /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. Ніколи не слід змінювати файли under / lib, оскільки ними керує менеджер пакунків, щоб уникнути чітких та потенційних зривів при оновленні, не кажучи вже про спрощення резервного копіювання.
hackel

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 в обох випадках містить "призупинення", "сплячий режим" або "гібридний сон".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.