Из самодельного юнита для /etc/rc.local запускаются не все команды

Сделал уже довольно давно себе юнит по вики для /etc/rc.local - всё вроде бы работало нормально до тех пор, пока я не прописал туда несколько строчек с участием hdparm, типа hdparm -S 36 "название диска". То есть, я просто задаю таймаут на отключение через 3 минуты ненужному в линуксе диску с виндовс. Ну или тупо пытаюсь диск выключить. Если ту самую строчку с hdparm выполнить вручную из рутовой консоли - всё работает правильно. Из /etc/rc.local - нет, притом, что все остальные строчки (пишущие в /proc и /sys) отрабатываются нормально.
В принципе понятно, что юнит выполняется слишком быстро и в логах видно, что SATA переподнимается ядром заново.
Хотел бы спросить, что надо писать в юните в строчке After= ?
Я попробовал запускать юнит и после сислога, и после сети. Результата не достиг.
Вики очень мутный. У меня ещё много вопросов по systemd, но обо всём по порядку...
Вопрос, зачем включать что бы потом выключить?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
Вопрос, зачем включать что бы потом выключить?
Вот и я спрашиваю. Зачем и почему ядро включает диск уже после моего юнита?
Повторяю ещё раз. Юнит слишком рано запускается.
Хотелось бы его запуск отложить на некоторое время, когда ядро со всеми модулями уже спокойно отработало.
сделай для команды отключения отдельный юнит без скрипта. а просто с нужной командой.
посмотри в списке запущенных юнитов тот диск после которого нужно стартовать и пропиши его в афте
будут выглядеть похоже на это:
dev-disk-byx2did-atax2dSAMSUNG_HD160JJ_S08HJ10Y754894.device
dev-disk-byx2did-atax2dST34313A_6DL0D3DJ.device

или просто попробуй сначала замаскировать этот юнит..
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
сделай для команды отключения отдельный юнит,
посмотри в списке запущенных юнитов тот диск после которого нужно стартовать и пропиши его в афте
будут выглядеть похоже на это:
dev-disk-byx2did-atax2dSAMSUNG_HD160JJ_S08HJ10Y754894.device
dev-disk-byx2did-atax2dST34313A_6DL0D3DJ.device
Понятно... это сработает... Но это будет жёсткая привязка к имени диска. Плюс ещё в самой команде выключения через hdparm будет привязка во второй раз. Как-то некрасиво оно.
По идее бы в rc.local это запихнуть - как-то универсальнее что ли и привычнее. Нужно только задержать его исполнение на некоторое время.
Не хотелось бы на каждый чих городить лишние юниты...
Не хотелось бы на каждый чих городить лишние юниты...
Не хотелось, но сам разраб советует так делать!
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
Не хотелось бы на каждый чих городить лишние юниты...
Не хотелось, но сам разраб советует так делать!
Как их потом контролировать? При помощи чего? Слишком много телодвижений выходит по каждому поводу и вместе.
А тут все личные фишки и настройки собраны в одном файле. В чём противоречие? Обычным текстовым редактором правится.
Да и в концепцию systemd вписано, как юнит оформлено. Просто запускается слишком рано. Надо позже. Я точно знаю, здесь есть люди до тонкостей понимающие как работает systemd. Думаю, никакого труда не составило бы подсказать решение.
Вот что у меня в /etc/systemd/system/myscript.service
[Unit]
Description=My script
After=network.target
[Service]
ExecStart=/etc/rc.local
[Install]
WantedBy=multi-user.target

Вот что в /etc/rc.local
#!/bin/bash
#
# /etc/rc.local: Local multi-user start-up script.
#
echo 1024 > /sys/class/rtc/rtc0/max_user_freq
echo 1024 > /proc/sys/dev/hpet/max-user-freq
/usr/bin/hdparm -S 36 /dev/disk/by-id/ata-Hitachi_HDS723020BLA642_MN3220F30BJTUE
/usr/bin/hdparm -y /dev/disk/by-id/ata-Hitachi_HDS723020BLA642_MN3220F30BJTUE
Две команды "echo" выполняются, а hdparm не работает.
Как их потом контролировать? При помощи чего?
вот что бы контролировать и нужны отдельные юниты, и их начальник системд
Думаю, никакого труда не составило бы подсказать решение.
http://archlinux.org.ru/forum/topic/11744/?page=1#post-111352
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
Как их потом контролировать? При помощи чего?
вот что бы контролировать и нужны отдельные юниты, и их начальник системд
Думаю, никакого труда не составило бы подсказать решение.
http://archlinux.org.ru/forum/topic/11744/?page=1#post-111352
Вот! Спасибо большое! :)) Кажется, это оно!
Но это будет жёсткая привязка к имени диска.
вот что бы передавать параметр в юнит и придуман суфикс после символа @ в имени юнита
http://www.freedesktop.org/software/systemd/man/systemd.unit.html

получилось бы например такое имя сервиса [email protected]
а включать его для любого винта можно было бы так
systemctl enable [email protected]_HDS723020BLA642_MN3220F30BJTUE.service

внутренности сервиса сам написать попробуй...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
 
Зарегистрироваться или войдите чтобы оставить сообщение.