Как запустить сервис автоматически при загрузке 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, я уверен, что вы сможете применить то же самое в своей среде рабочего стола.

Другие вопросы по тегам