LINUX.ORG.RU

Автозапуск hdparm.service

 , ,


5

3

Нужно сделать чтобы hdparm.service стартовал автоматически после перезагрузки системы. Написал unit-файл для systemd со следующим содержимым:

[Unit]
Description=hdparm
After=basic.target

[Service]
ExecStart=/usr/sbin/hdparm -B 255 /dev/sda

Но это не работает. Нужно еще что-то указать в секции [Install]. Вопрос что именно? Так как:

# systemctl enable hdparm.service
The unit files have no [Install] section. They are not meant to be enabled using systemctl.

p.s. Fedora 18 x86_64


Мда, chkconfig был слишком сложен

leave ★★★★★ ()

Может так?

[Install]
WantedBy=multi-user.target

Lamppost ★★ ()

После перезагрузки, как я понимаю, это при загрузке системы? =)

В Арче секция install выглядит так:

[Install]
WantedBy=multi-user.target
Вообще открой любой из тех .service, которые у тебя стартуют при запуске, да посмотри install секцию

v0mqfish ★★ ()
Ответ на: комментарий от Lamppost

Добавил, вот что получается:

# systemctl enable hdparm.service
# systemctl status hdparm.service
hdparm.service - hdparm
          Loaded: loaded (/usr/lib/systemd/system/hdparm.service; enabled)
          Active: inactive (dead)
          CGroup: name=systemd:/system/hdparm.service

Active: inactive (dead)

Похоже не работает.

v0mqfish > Вообще открой любой из тех .service, которые у тебя стартуют при запуске, да посмотри install секцию

Смотрю некоторые сервисы работают и без секции [Install]. В общем не очень еще разобрался с этим systemd.

Nokman ()

Я таким пользуюсь

> cat /etc/systemd/system/fix-hdparm@.service 
[Unit]
Description=Fix some hdparm settings after suspend/restore
After=dev-%i.device suspend.target hibernate.target sysinit.target hybrid-sleep.target
Requires=dev-%i.device

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -B 254 /dev/%i

[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target
WantedBy=sysinit.target
# systemctl enable fix-hdparm@sda
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/suspend.target.wants/fix-hdparm@sda.service'
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/hibernate.target.wants/fix-hdparm@sda.service'
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/hybrid-sleep.target.wants/fix-hdparm@sda.service'
ln -s '/etc/systemd/system/fix-hdparm@.service' '/etc/systemd/system/sysinit.target.wants/fix-hdparm@sda.service'
vasily_pupkin ★★★★★ ()
Ответ на: комментарий от Lamppost

Спасибо, помогло. Перезагрузил систему, проверил еще раз:

# systemctl status hdparm.service 
hdparm.service - hdparm
          Loaded: loaded (/usr/lib/systemd/system/hdparm.service; enabled)
          Active: inactive (dead) since Wed, 2013-01-16 15:36:39 EET
         Process: 548 ExecStart=/usr/sbin/hdparm -B 255 /dev/sda (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/hdparm.service

Jan 16 15:36:38 Fedora systemd[1]: Starting hdparm...
Jan 16 15:36:39 Fedora hdparm[548]: /dev/sda:
Jan 16 15:36:39 Fedora hdparm[548]: setting Advanced Power Management level to disabled
Jan 16 15:36:39 Fedora hdparm[548]: APM_level   = off
Jan 16 15:36:39 Fedora systemd[1]: Started hdparm.

все работает :)

Active: inactive (dead)

Вот только почему здесь так? Просто интересно уже. Кстати, и в управлении службами (в КДЕ) тоже указано, что модуль неактивен.

Nokman ()
Ответ на: комментарий от Nokman

Он inactive потому что он выполнил 1 команду и завершился. Можно добавить в секцию service строку RemainAfterExit=yes.

Lamppost ★★ ()
Ответ на: комментарий от BMX

Нет в F18 такого файла:

# ls -l /etc/hdparm.conf
ls: невозможно получить доступ к /etc/hdparm.conf: Нет такого файла или каталога

И судя по отзывам работать это не будет. До появления systemd тоже так настраивал, да.

Nokman ()

Автозапуск hdparm.service
Fedora 18

Мать твою перемать... В Release Notes ведь всё написано.

# systemctl enable hdparm.service
Теперь не работает. Надо так:
# systemctl enable hdparm

Urchin ★★★ ()
Ответ на: комментарий от Urchin

Во-первых, по умолчанию даже сам пакет hdparm не был установлен.

Во-вторых, после установки пакета в /usr/lib/systemd/system/ не было для него unit-файла.

# systemctl enable hdparm

Каким образом бы это сработало интересно? Человек выше тоже все это напрасно писал?

Кстати, не важно как писать, работает что так «<service_name>», что вот так «<service_name.service>».

Nokman ()
Ответ на: комментарий от Nokman

насчет федоры и правда не знаю, но в опенсусе работало, хотя там тоже systemd

BMX ★★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.