Я пытаюсь отключить пробуждение ACPI по usb в Ubuntu 20.04, поэтому я создал скрипт в /etc/profile.d
-rwxr-xr-x 1 root root 110 18 мая 00:23 disable-usb-wake.sh
#!/bin/sh -e
if cat /proc/acpi/wakeup | egrep 'XHC.*enabled'; then
echo "XHC" > /proc/acpi/wakeup
fi
Когда я запускаю свою машину, он говорит, что в разрешении отказано. Зачем?
Как упоминалось в комментариях, /etc/profile.d
запускается при входе пользователя в систему, поэтому не будет иметь достаточных разрешений для изменения конфигурации системы. Вы можете добавить sudo
там, но это будет означать, что вам нужно будет снова ввести свой пароль при входе в систему - это будет раздражать и не будет работать, если входящий в систему пользователь не является системным администратором. Кроме того, он не будет выполнять свою работу, если после загрузки никто не войдет в систему.
Есть несколько вариантов, включая добавление /etc/rc.local
как вы упомянули, это был один из распространенных способов выполнения такого рода пользовательских заданий «при загрузке» до того, как SystemD полностью /etc/rc*
вещь неактуальная.
Но - если у вас уже есть /etc/rc.local
настроенный с помощью вашего скрипта, вы можете просто включить его в SystemD:
/etc/rc.local
исполняемый. Например, запустив chmod a+x /etc/rc.local
. В противном случае режим совместимости с SystemD работать не будет./etc/systemd/system/rc-local.service.d/enable.conf
с содержанием ниже.sudo systemctl enable rc-local
/etc/systemd/system/rc-local.service.d/enable.conf
:
[Install]
WantedBy=multi-user.target
При следующей загрузке вашей системы SystemD запустит ваш пользовательский /etc/rc.local
.
power/wakeup
"когда он видит, что такое XHC (я думаю, это встроенный USB-концентратор XHCI?), как описано здесь: https://www.kernel.org/doc/html/v4.13/driver-api/usb/power-management.html