Как запустить сервис автоматически при загрузке Arch Linux?
Я провел небольшое исследование, пытаясь выяснить это, только чтобы найти различные варианты, которые кажутся очень запутанными и сложными только для запуска одного сервиса, и это все, что мне нужно сделать.
В основном я пытаюсь начать xbindkeys
всякий раз, когда запускается среда рабочего стола (или когда пользователь входит в систему).
Какие простые варианты сделать это?
3 ответа
Будьте осторожны с типом сервиса, который вы пытаетесь запустить. Вы правильно определили, что xbindkeys
должен запускаться вместе со средой рабочего стола, так как ему необходим доступ к вашему дисплею X11, которого не было бы у служб "запуск при загрузке". Многие люди об этом забывают.
В большинстве сред рабочего стола создайте ~/.config/autostart/xbindkeys.desktop
согласно спецификации XDG Autostart:
[Desktop Entry]
Type=Application
Exec=xbindkeys
Обычно это можно сделать через cinnamon-session-properties
или похожие.
Другой способ - поместить команду в ~/.xprofile
скрипт, который запускается большинством диспетчеров отображения (GDM, KDM, LXDM, LightDM):
xbindkeys &
Если вы используете только startx
поставить ту же строку в вашем ~/.xinitrc
вместо этого, перед той частью, которая запускает среду рабочего стола. То же относится и к диспетчерам отображения, которые вызывают startx
, такие как SLiM.
Некоторые службы, в том числе xbindkeys, "отсоединяют" себя таким образом &
строго не требуется. Тем не менее, это не повредит, и, возможно, может ускорить запуск, так как bash отсоединяется еще до запуска процесса. С другой стороны, в некоторых ситуациях это может повредить, то есть когда необходимо знать, когда служба полностью инициализирована.
Общесистемные службы, с другой стороны, следует запускать как системные службы, создавая /etc/systemd/system/<name>.service
единичный файл. Они запускаются рано и не имеют доступа к дисплею X11 (и часто запускаются раньше, чем менеджер дисплеев).
xbindkeys - это не служба, которая вместо этого требует использования systemctl.
Тем не менее, xbindkeys, как и почти все в Arch, имеет очень хорошую вики-страницу, которая, среди прочего, гласит:
Когда вы закончите настройку ключей, отредактируйте ~/.xinitrc и поместите
xbindkeys
перед строкой, которая запускает ваш оконный менеджер или DE.
Вы должны действительно начать читать Wiki, он действительно хорошо написан, настолько, что я читаю его, даже когда мне нужно добавить / изменить конфигурации для других моих систем, не являющихся Arch Linux.
Со своей стороны я использую Cinnamon в качестве рабочего стола. Поэтому я просто добавил /usr/bin/xbindkeys
в панели настроек Cinnamon → Запуск приложений.
Сюда, xbindkeys
запускается при запуске среды моего рабочего стола.
Если вы не используете Cinnamon, я уверен, что вы сможете применить то же самое в своей среде рабочего стола.