Как передать ключи для dhcpcd запущенного из netctl-auto?

Решил попробовать netctl вместо networkmanager для ноута. Использую автоматическое переключение профилей как написано на Вики Заметил, что после выключения и включения вайфая кнопкой на клавиатуре инета нет, по причине, что dhcpcd не получает заново адрес (мое непрофессиональное мнение насчёт адреса). Мой [email protected] запускает его так:
dhcpcd -4 -q -t 30 -K -L wlo1
Если его перезапускать без ключа -K то инет после выключения и включения вайфая кнопкой работает. Как настроить netctl, что бы он запускал dhcpcd без этого ключа? Как можно по другому сделать, чтобы инет работал после этого выключения и включения в сочетании с netctl?
После исследования кода netctl сделал вывод, что это невозможно т.к. в самом коде прописаны ключи. Так что либо автор по моему запросу изменит эту ситуацию, либо самому убивать процесс dhcpcd и запускать с нужными ключами.
Не совсем понял к чему у тебя притензии, но у netctl есть механизм хук, можешь заменить команду dhcp клиента или же воспользоваться инструкциями ExecUpPost/ExecDownPre
Hargikan
заменить команду dhcp клиента
Замена клиента не помогает.
В самих скриптах уже написаны опции для передачи dhcpcd.
Я заметил, что netctl запускает dhcpcd вот так:
dhcpcd -4 -q -t 30 -L wlo1
а netctl-auto так:
dhcpcd -4 -q -t 30 -K -L wlo1
т.е. разница в ключе -K Этот ключ мешает обновить dhcpcd свою конфигурацию после выключения и включения карты wifi. Думаю, автор забыл убрать этот ключ для netctl-auto.
Наверно можно только в ExecUpPost убить dhcpcd и запустить его со своими опциями. Но это неправильно т.к. это латание кода. Так что придётся использовать networkmanager.
а как насчет самого тупого способа? "свой" dhcpcd например?
hi_arch
а как насчет самого тупого способа? "свой" dhcpcd например?
Я думаю, писать свой клиент dhcp для сыроватого netctl дело неблагодарное. А так в целом мне netctl понравился.
mhd
hi_arch
а как насчет самого тупого способа? "свой" dhcpcd например?
Я думаю, писать свой клиент dhcp для сыроватого netctl дело неблагодарное. А так в целом мне netctl понравился.
mv dhcpcd dhcpcd1
nano dhcpcd
#!/bin/bash
dhcpcd1 -4 -q -t 30 -L wlo1
chmod +x dhcpcd
такой костыль ни раз меня спасал когда я мучился с l2tp
Люди, читайте же доку. Ты можешь указать свою команду запуска dhcp клиента с нужными тебе параметрами. Что за ерунда с написанием "своих" dhcp и с подменой системных бинарников?...
Тут несколько простых способов решения проблемы:
- тупо редактировать в systemd.unit директиву ExecStart, меняя ключи запуска
- указать в хуке свою команду.

Ты можешь вообще свой юнит написать, отключив системный и включив свой, куда пропишешь полностью "правильную" команду с правильными аргументами. Не поленись и прочти документацию по systemd.unit
На текущий момент полно сервисов, которые не научились красиво задавать настройки для systemd в реализации arch-а.
Допустим Docker, он тоже не умеет как в том же Debian читать параметры по умолчанию из /etc/default/Docker и в документации рекомендуют просто менять в юните нужные параметры демону.
Ты пожешь вообще переопределить все параметры вывода
systemctl show dhcpcd

$ systemctl show --property=FragmentPath dhcpcd.service
FragmentPath=/usr/lib/systemd/system/dhcpcd.service
$ vim /usr/lib/systemd/system/dhcpcd.service
$ systemctl daemon-reload

Измени для своего юнита и все
Hargikan
$ vim /usr/lib/systemd/system/dhcpcd.service
а вот это не стоит делать!!!
все изменения юнитов проводятся в /etc/systemd/
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Hargikan
Ты можешь вообще свой юнит написать, отключив системный и включив свой
Насколько я понимаю - только так будет более менее правильный и красивый способ решить этот вопрос. netctl - набор bash скриптов и уже в них заданы опции, поэтому правка юнитов, думаю не поможет, только свой юнит. Вообще автору netctl, надо научиться писать код без хардкодовых настроек и давать возможность пользователям задавать настройки самим.
 
Зарегистрироваться или войдите чтобы оставить сообщение.