Ответ на этот вопрос - поменять местами User = nobody
не на User = ziga
, а на Пользователь = root
в /etc/systemd/system/battery.service . Каким-то образом, даже если пользователь ziga
имеет все привилегии использования команды sudo
, он не может выполнить systemctl hibernate
внутри сценария bash. Я действительно не знаю, почему это происходит. Итак, рабочие файлы выглядят следующим образом:
/etc/systemd/system/battery.service
[Unit]
Description=Preko skripte preveri stanje baterije in hibernira v kolikor je stanje prenizko
[Service]
Type=oneshot
ExecStart=/home/ziga/Dropbox/workspace/operacijski/archlinux/hibernate/hibernatescript
User=root
Group=systemd-journal
/etc/systemd/system/battery.timer
[Unit]
Description=Periodical checking of battery status every two minutes
[Timer]
OnBootSec=2min
OnUnitActiveSec=2min
[Install]
WantedBy=battery.service
/ home / ziga / Dropbox / workspace / operacijski / archlinux / hibernate / hibernatescript
#!/bin/sh
/usr/bin/acpi -b | /usr/bin/awk -F'[,:%]' '{print $2, $3}' | (
read -r status capacity
if [ "$status" = Discharging ] && [ "$capacity" -lt 7 ]; then
/usr/bin/systemctl hibernate
fi
)
Я попробовал, и все это также работает с User = ziga
или User = nobody
, но нам нужно изменить / usr / bin / systemctl hibernate
в sudo / usr / bin / systemctl hibernate
в последнем скрипте. Получается, что переменная пользователя
почему-то даже не имеет значения ...Да, и вы также можете удалить абсолютные имена из последнего скрипта и изменить первую строку с #! / Bin / sh
на #! / Bin / bash
. Я также изменил WantedBy = timers.target
на WantedBy = battery.service
в /etc/systemd/system/battery.timer .
Вот так. Лучшая альтернатива cron для ноутбуков с гибернацией при низком заряде батареи. =)
RPM отслеживает библиотеки, используя soname, точно так же, как компоновщик/загрузчик ELF.
Когда в glibc добавлялись версионные символы, RPM добавлял уникальные версии внутри первого набора круглых скобок. Смотрите "rpm -q --fileprovide glibc" для многих примеров.
При добавлении multilib (как 32-разрядных, так и 64-разрядных библиотек в одной системе )для различения добавлялся маркер «(64-разрядная )».
К сожалению, недопонимание привело к добавлению пустого " ()" с библиотеками, не имеющими версий символов. В принципе, версии символов появляются внутри пустого «()», но очень немногие библиотеки, кроме glibc, используют управление версиями символов.