Как запустить сервис автоматически при загрузке Arch Linux?

1

Я провел небольшое исследование, пытаясь выяснить это, только чтобы найти различные варианты, которые кажутся очень запутанными и сложными только для запуска одного сервиса, и это все, что мне нужно сделать.

По сути, я пытаюсь запустить xbindkeysкаждый раз, когда запускается среда рабочего стола (или всякий раз, когда пользователь входит в систему).

Какие простые варианты сделать это?

sherrellbc
источник
1
Если вам это не нужно, пока не запустится среда рабочего стола, существуют различные способы сделать это, не зависящие от Arch. Например, на Xfce .
user55325

Ответы:

2

Будьте осторожны с типом сервиса, который вы пытаетесь запустить. Вы правильно определили, что 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, «отсоединяются», так что &это строго не требуется. Однако, это не повредит, и, возможно , сделать запуск быстрее , так как Баш отрывает еще до начала процесса. С другой стороны, в некоторых ситуациях это может повредить, то есть когда необходимо знать, когда служба полностью инициализирована.


С другой стороны, общесистемные службы следует запускать как системные службы, создавая /etc/systemd/system/<name>.serviceфайл модуля. Они запускаются рано и не имеют доступа к дисплею X11 (и часто запускаются раньше, чем менеджер дисплеев).

grawity
источник
Согласно ошибке 845339 Fedora больше не поддерживает ~/.xprofileи ~/.xinitrc.
Кристиан Чиупиту
1

xbindkeys - это не служба, которая вместо этого требует использования systemctl .

Тем не менее, xbindkeys имеет, как только о чем - нибудь в арке, очень хорошей вики - страницы, здесь , которая гласит, среди прочего:

Когда вы закончите настройку ключей, отредактируйте ~ / .xinitrc и поместите

 xbindkeys

перед строкой, которая запускает ваш оконный менеджер или DE.

Вы должны действительно начать читать Wiki, он действительно хорошо написан, настолько, что я читаю его, даже когда мне нужно добавить / изменить конфигурации для других моих систем, не являющихся Arch Linux.

MariusMatutiae
источник
Я, конечно, читал вики, я должен был пропустить этот важный компонент. В противном случае я бы не знал, как настроить xbindkeys для начала.
sherrellbc
1

Со своей стороны я использую Cinnamon в качестве рабочего стола. Поэтому я только что добавил /usr/bin/xbindkeysв Cinnamon Settings Panel → Автозагрузка приложений.
Таким образом, xbindkeysзапускается, когда запускается среда моего рабочего стола.
Если вы не используете Cinnamon, я уверен, что вы сможете применить то же самое в своей среде рабочего стола.

никола
источник