У меня была та же самая проблема, ни одно из решений здесь не соответствовало моим потребностям. Использование cron - это обходной путь, а не решение, правила udev запускаются при подключении / отключении питания, но не после приостановки / возобновления, и pm-utils
больше не используются по умолчанию в Fedora 19, когда вы, например, закрываете крышку ноутбука.
Так systemd
как теперь отвечает за приостановку / спящий режим, я думаю, что единственный правильный способ справиться с этой ситуацией - создать systemd
модуль, который будет работать как после загрузки, так и после возобновления из режима ожидания.
Заметки:
- Используя
/dev/disk/by-id/...
вместо /dev/sda
, вы всегда обязательно получите правильный диск (sda, b, c зависит от порядка, в котором они обнаружены ядром)
- Вы можете иметь несколько
ExecStart
строк, чтобы вы могли настроить несколько дисков
Вот блок, который я написал:
[Unit]
Description=Silence HD
After=suspend.target
[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1
[Install]
WantedBy=suspend.target basic.target
Сохраните этот файл как /etc/systemd/system/hdsilence.service
и затем включите его, используя:
systemctl enable hdsilence.service
systemctl daemon-reload
Вы можете заставить систему выполнить команду во время загрузки, создав собственную службу systemd или добавив команду в /etc/rc.d/rc.local.
Если вы хотите, чтобы команда запускалась при каждом пробуждении системы после сна / гибернации, вы можете добавить скрипт, начинающийся с 2 цифр, в /etc/pm/sleep.d/, посмотрите другие скрипты в / usr / lib64 / pm-utils / sleep.d (при условии x86_64) для более подробной информации. По сути, он принимает параметр в зависимости от того, в какое состояние он входит. Вам также может понадобиться добавить логин в power.d / в том же родительском каталоге, если вы хотите работать по разному от батареи, чем при подключении.
источник
creating your own systemd service
Вы можете быть более конкретным? У меня нет файла /etc/rc.d/rc.local./etc/rc.d/rc.local
Файл только сценарий оболочки, создайте его и убедитесь , что его исполняемым.Для различных настроек при работе от сети переменного тока / батареи, я бы сделал это с помощью простого
udev
правила, например/etc/udev/rules.d/98-apmsettings.rules
:Это было установлено ,
apm
чтобы ,254
когда ноутбук подключен к сети и , соответственно ,128
когда отключен. Кроме того, он всегда должен работать, даже после выхода из режима ожидания.источник
hdparm
в/usr/sbin
так настроить пути.У меня такой же диск (и та же проблема). Мое глупое, но рабочее решение: я вставил это в
/etc/crontab
:источник
Правила udev хорошо работают с событиями plug, но чтобы получить правильное поведение после возобновления из suspend, мне нужно что-то вроде этого
/etc/pm/sleep.d
:источник