[РЕШЕНО] bash скрипт в автозапуске или удивительный sudo

Добрый день всем постигающим и постигшим свой путь юникс.
Я недавно создавал тему по не поднимающемуся dhcpcd, и как отписался - все получилось, всем огромное спасибо. Неожиданные приключения поджидали в самом конце как казалось. А именно автозапуск скрипта:
wifi.sh
#!/bin/bash [i]sudo[/i] ip link set wlp6s0 up #sudo wpa_supplicant -B -Dwext -i wlp6s0 -c /etc/wpa_supplicant.conf [i]sudo[/i] dhcpcd wlp6s0 exit Скрипт замечательно работает на руте и с sudo на моем юзере…
Тем не менее, чтобы вообще хорошо, хотел поставить в автозапуск… Наобум набрал в менюшке KDE autostart и о чудо - полезная функция, можно ставить программы и скрипты в автозагрузку, тем не менее скрипт при загрузке не срабатывает, так как X уже стартует из под юзера, если стартовать Х из под рута - все работает именно как надо. Проблема очевидна нужно скрипту дать волю - либо как-то логиниться через баш, а потом сам скрипт, либо менять владельца от dhcpcd (чего делать крайне не хочу, так как предыдущая система почила именно из-за того, что раскидывался правами через chown).
Покопав Wiki нашел как казалось супер способ - засунуть скрипт в /etc/profile.d, к остальным скриптам выполняющимся при загрузке… И скрипт заработал, только очень подло - судо команды он пропускает, так как надо как-то вводить пароль, а выполняет только exit, притом не из скрипта, а аккаунта… Те, я запускаюсь, ввожу логин пароль, система начинает грузиться и тут же выходит опять на форму логин-пароль… И так бесконечно. Та же историю из под рута. Благо был переходник sata-usb и второй ноут, последний exit из кода убрал, система начала грузиться как надо, но скрипт все равно не грузит. Думаю решение элементарное, подскажите где косячу… Заранее благодарю)
У вас 2 варианта:
  1. настроить sudo, чтобы указанные команды выполнялись без пароля
  2. написать юнит
Что за такой общий протест против netctl))
Ошибки в тексте-неповторимый стиль автора©
ind.indeviral
Что за такой общий протест против netctl))
Оно дистро-специфично и без него можно обойтись. Поэтому "не нужно".
neobrave, Expect не пробовал ?
Конечно без него можно))), а вот без возможности скрипты запихивать в автозагрузку через кде (второй раз через КДЕ) ну никак не обойтись))
Ошибки в тексте-неповторимый стиль автора©
lampslave
Оно дистро-специфично и без него можно обойтись. Поэтому "не нужно".
я б поспорил насчет специфичности.
Наверое, самый простой способ - убрать судо из скрипта, запускать его через sudo script_name и добавить NOPASSWD.
Но юнит лучше, имхо (в прошлой теме ссылку на скрипт давал)
PGP 0x31361F01
arcanisrepo
Самое лучшее - написать сервис файл для systemd и поместить его в каталог /etc/systemd/user/. Навскидку, примерно так:
[Unit]
Description=Your description is here
After=multi-user.target
[Service]
Type=forked
ExecStart=ip link set wlp6s0 up ; wpa_supplicant -B -Dwext -i wlp6s0 -c /etc/wpa_supplicant.conf ; dhcpcd wlp6s0
[Install]
WantedBy=graphical.target
Если неверно, прошу сильно не пинать, т.к. системд только начинаю курить) Но даже и так грубо, конечно, можно и более изящнее сделать запуск (например, через регистрацию на шине D-Bus и отслеживание состояния интерфейса; и при падении - перезапуск), но в данный момент лень разбираться)
[email protected]# cat /dev/ass > /dev/head
arcanis
я б поспорил насчет специфичности.
А что, оно уже где-то используется кроме как в Арче?
lampslave А как вы думаете где ещё bash используется?
Ошибки в тексте-неповторимый стиль автора©
 
Зарегистрироваться или войдите чтобы оставить сообщение.