Автозапуск программ в NetBSD
За подробностями можно сходить до первоисточников:
https://netbsd.org/docs/guide/en/chap-rc.html
https://man.netbsd.org/rc.d.8
Нам оттуда нужен файл rc.local
И хотя этот rc.local не вписывается в концепцию rc.d, мы можем использовать его для запуска своих скриптов.
Это почти последний сценарий, вызываемый при загрузке. Этот сценарий может редактироваться администратором для запуска локальных демонов.
Синтаксис запуска выглядит так:
if [ -x /path/to/daemon ]; then
/path/to/daemon args
fi
daemon - это .sh-скрипт без расширения!
Пример:
1. Создадим в папке пользователя файл ru(без какого-либо расширения!):
$ touch ruПредположим, папка пользователя называется user.
Тогда, полный путь до файла ru выглядит так: /home/user/ru
2. Пропишем в этот файл, некую команду.
В нашем примере, я пропишу туда команду, включающую переключение раскладки клавиатуры, с помощью комбинации CTRL+SHIFT:
setxkbmap -model pc105 -layout us,ru -variant ,winkeys -option grp:ctrl_shift_toggle -option grp_led:scroll &
Примечание:
Знак амперсанда & - позволяет запускать программу как демон, в фоне, и "отпустить" шелл.
3. Делаем файл ru исполняемым:
$ chmod +x ru
4. Записываем его в rc.local:
if [ -x /home/user/ru ]; then
/home/user/ru
fi
Собственно, всё)
Можем перезагрузиться.
Примечание:
Таким образом можно запустить консольные скрипты. Так как rc.local запускается ДО загрузки X-ов, то что-нибудь графическое таким образом запустить не получится.
Автозапуск графическим программ/скриптов лучше делать другими средствами. Например, через .xsession; или средствами, например, оконного менеджера (если позволяет).
Как-нибудь напишу пример, если кому-то очень понадобится ;)