sxhkd를 systemd 서비스로 시작할 수 없습니다.

Arch Linux 설치에서 bspwm을 사용하고 있으며 응용 프로그램을 시작하려면 sxhkd 핫키 데몬을 실행해야합니다.

지금까지 시작 스크립트는 내 .config / bspwm / bspwmrc (간단한 bash 스크립트 파일)에있었습니다.

# Keyboard bindings manager
pkill sxhkd
sxhkd -m 1&

-m 1나는 쿼티 키보드가 없기 때문에 논쟁이있다.

bspwmrc 스크립트는 자동 로그인시 디스플레이 관리자 인 LightDM에 의해 실행됩니다. 지금까지는 훌륭합니다.

Arch Wiki를 읽고 Systemd로 sxhkd를 직접 시작할 수 있다는 것을 깨달았습니다. 샘플 서비스 파일에 대한 링크있습니다. 포함하는:

[Unit]
Description=Simple X Hotkey Daemon
Documentation=man:sxhkd(1)
BindsTo=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/sxhkd
ExecReload=/usr/bin/kill -SIGUSR1 $MAINPID

[Install]
WantedBy=graphical.target

그래서 궁금했습니다. 그리고 sxhkd.service 파일을 /etc/systemd/system(-m 1 인수를 추가 한 후)에 복사하고를 사용하여 서비스를 활성화 sudo systemctl enable sxhkd하고 bspwmrc 스크립트의 줄에 주석을 달고 다시 시작했습니다.

아아, 그것은 작동하지 않습니다. 를 입력 할 때 systemctl status sxhkd다음 오류 메시지가 표시됩니다.

Warning: The unit file, source configuration file or drop-ins of sxhkd.service changed on disk. Run 'systemctl daemon-rel>
● sxhkd.service - Simple X Hotkey Daemon
     Loaded: loaded (/etc/systemd/system/sxhkd.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Fri 2020-07-24 10:29:05 CEST; 14min ago
       Docs: man:sxhkd(1)
   Main PID: 662 (code=exited, status=1/FAILURE)

Jul 24 10:29:05 Solgaleo systemd[1]: Started Simple X Hotkey Daemon.
Jul 24 10:29:05 Solgaleo sxhkd[662]: Can't open display.
Jul 24 10:29:05 Solgaleo systemd[1]: sxhkd.service: Main process exited, code=exited, status=1/FAILURE
Jul 24 10:29:05 Solgaleo systemd[1]: sxhkd.service: Failed with result 'exit-code'.

내 이해는 Can't open displaysxhkd가 너무 일찍 시작 된다는 것을 의미하며 ... 이유 또는 수정 방법을 모르겠습니다.

이전 구성으로 돌아갈 수 있다는 것을 알고 있지만 아치 위키에 작동하지 않는 것이있는 경우 내 잘못인지 또는 위키를 업데이트해야하는지 확인하고 싶습니다.

편집 :

추가 조사에 따르면 sxhkd를 루트로 실행할 수 없습니다.

내가 변경 한 내용은 다음과 같습니다.

나는에서 sxhkd.service 파일을 이동 /etc/systemd/system/etc/systemd/user와를 통해 그것을 활성화 systemctl --user enable sxhkd명령.

여전히 작동하지 않지만 다른 오류 메시지가 표시됩니다.

Failed to start sxhkd.service: Unit display-manager.service not found. 

입력 systemctl status display-manager하면 다음이 제공됩니다.

● lightdm.service - Light Display Manager
     Loaded: loaded (/usr/lib/systemd/system/lightdm.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2020-07-25 11:11:07 CEST; 10min ago
       Docs: man:lightdm(1)
   Main PID: 602 (lightdm)
      Tasks: 4 (limit: 38412)
     Memory: 63.7M
     CGroup: /system.slice/lightdm.service
             ├─602 /usr/bin/lightdm
             └─666 /usr/lib/Xorg -bs -core :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

Jul 25 11:11:05 Solgaleo systemd[1]: Starting Light Display Manager...
Jul 25 11:11:07 Solgaleo lightdm[602]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop>
Jul 25 11:11:07 Solgaleo systemd[1]: Started Light Display Manager.
Jul 25 11:11:08 Solgaleo lightdm[670]: pam_succeed_if(lightdm-autologin:auth): requirement "user ingroup autologin" was m>
Jul 25 11:11:08 Solgaleo lightdm[670]: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop>
Jul 25 11:11:08 Solgaleo lightdm[670]: pam_unix(lightdm-autologin:session): session opened for user ben by (uid=0)
lines 1-17/17 (END)

이는 디스플레이 관리자가 제대로 실행되고 있음을 의미합니다. 로 시작된 서비스에서 볼 수 없을 수도 있습니다 --user.

편집 2 :

BindsTo과는 After실제로 필요하지 않습니다 : 서비스는 사용자 세션이 시작되었습니다 그래서 후에, 사용자로 시작됩니다. 그러나 제거하면 시작시 서비스가 전혀 시작되지 않습니다. 그래도 수동으로 시작하면 잘 작동합니다.

편집 3 :

내가 수행 한 단계에 대한 자세한 내용 : https://bbs.archlinux.org/viewtopic.php?id=257626&p=2

미셸

당신이 설명하는 접근 방식은 불가능하거나 적어도 내가 아는 바가 아닙니다. 다음과 같은 반례를 고려하십시오. 다중 헤드 설정이있는 경우 두 번 로그인합니다. 바로 systemd가기 키 데몬의 복사본 하나를 시작합니다. 이제 시스템의 두 사용자 중 한 명이 핫키를 누릅니다. 누가 화면에 결과를 얻습니까? ;)

따라서 가장 좋은 방법은 세션이 핫키 데몬을 시작하도록하는 것입니다. 간단한 방법은 이전에했던 것처럼 창 관리자의 시작 스크립트를 사용하는 것입니다. 보다 현대적인 방법은 일종의 사용자 세션이 이것을 관리하는 것입니다. 이것은 실제로 시스템과 창 관리자의 설정에 따라 다릅니다. 내 경험상 이것은 항상 약간의 히트 또는 미스이며 잘 문서화되지 않은 반면 시작 스크립트는 매우 간단합니다.

dbus 서비스 파일을 작성하는 방법의 한 예는 https://serverfault.com/a/906224/107282에서 볼 수 있습니다 . 언급 한 데몬에는 dbus가 필요하지 않지만 구성된 DISPLAY변수 를 사용하여 적절한 시간에 시작할 수 있어야 합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

systemd에서 서비스를 시작할 수 없습니다.

분류에서Dev

systemd 서비스에서 GUI 프로그램을 시작할 수 없습니다.

분류에서Dev

사용자 정의 systemd 서비스를 시작할 수 있지만 활성화 할 수 없습니다.

분류에서Dev

하나의 대상으로 많은 systemd 서비스를 다시 시작할 수 있습니까?

분류에서Dev

Systemd가 스크립트를 시작할 수 없습니까?

분류에서Dev

Elasticsearch를 서비스로 시작할 수 없습니다.

분류에서Dev

Systemd Timer를 시작할 수 없습니다.

분류에서Dev

앱 시작 후 서비스를 시작할 수 없습니다.

분류에서Dev

X를 systemd 서비스로 사용하는 응용 프로그램을 실행할 수 없습니다.

분류에서Dev

systemd는 명령 실행 후 서비스를 실행할 수 없습니다.

분류에서Dev

Systemd 서비스 : 먼저 중지하지 않으면 다시 시작 장치를 찾을 수 없습니다.

분류에서Dev

Systemd를 사용하여 Debian에서 네트워킹을 다시 시작할 수 없습니다.

분류에서Dev

더 이상 mysql 서비스를 시작할 수 없습니다.

분류에서Dev

mongodb 서비스를 시작할 수 없습니다.

분류에서Dev

mongodb 서비스를 시작할 수 없습니다.

분류에서Dev

더 이상 mysql 서비스를 시작할 수 없습니다.

분류에서Dev

SQLEXPRESS 서비스를 시작할 수 없습니다.

분류에서Dev

ZNC 서비스를 시작할 수 없습니다.

분류에서Dev

ZNC 서비스를 시작할 수 없습니다.

분류에서Dev

mongodb 서비스를 시작할 수 없습니다.

분류에서Dev

mysql 서비스를 시작할 수 없습니다.

분류에서Dev

C ++ Windows 서비스를 시작할 수 없습니다.

분류에서Dev

Deluged 서비스 (init.d)를 시작할 수 없습니다.

분류에서Dev

Mongo는 서비스를 시작할 수 없습니다

분류에서Dev

netatalk 서비스를 시작할 수 없습니다.

분류에서Dev

크론 서비스를 시작할 수 없습니다.

분류에서Dev

apache2 서비스를 시작할 수 없습니다

분류에서Dev

systemd로 uwsgi를 제어 할 수 없습니다.

분류에서Dev

다른 서비스를 시작할 때 systemd 서비스 중지

Related 관련 기사

  1. 1

    systemd에서 서비스를 시작할 수 없습니다.

  2. 2

    systemd 서비스에서 GUI 프로그램을 시작할 수 없습니다.

  3. 3

    사용자 정의 systemd 서비스를 시작할 수 있지만 활성화 할 수 없습니다.

  4. 4

    하나의 대상으로 많은 systemd 서비스를 다시 시작할 수 있습니까?

  5. 5

    Systemd가 스크립트를 시작할 수 없습니까?

  6. 6

    Elasticsearch를 서비스로 시작할 수 없습니다.

  7. 7

    Systemd Timer를 시작할 수 없습니다.

  8. 8

    앱 시작 후 서비스를 시작할 수 없습니다.

  9. 9

    X를 systemd 서비스로 사용하는 응용 프로그램을 실행할 수 없습니다.

  10. 10

    systemd는 명령 실행 후 서비스를 실행할 수 없습니다.

  11. 11

    Systemd 서비스 : 먼저 중지하지 않으면 다시 시작 장치를 찾을 수 없습니다.

  12. 12

    Systemd를 사용하여 Debian에서 네트워킹을 다시 시작할 수 없습니다.

  13. 13

    더 이상 mysql 서비스를 시작할 수 없습니다.

  14. 14

    mongodb 서비스를 시작할 수 없습니다.

  15. 15

    mongodb 서비스를 시작할 수 없습니다.

  16. 16

    더 이상 mysql 서비스를 시작할 수 없습니다.

  17. 17

    SQLEXPRESS 서비스를 시작할 수 없습니다.

  18. 18

    ZNC 서비스를 시작할 수 없습니다.

  19. 19

    ZNC 서비스를 시작할 수 없습니다.

  20. 20

    mongodb 서비스를 시작할 수 없습니다.

  21. 21

    mysql 서비스를 시작할 수 없습니다.

  22. 22

    C ++ Windows 서비스를 시작할 수 없습니다.

  23. 23

    Deluged 서비스 (init.d)를 시작할 수 없습니다.

  24. 24

    Mongo는 서비스를 시작할 수 없습니다

  25. 25

    netatalk 서비스를 시작할 수 없습니다.

  26. 26

    크론 서비스를 시작할 수 없습니다.

  27. 27

    apache2 서비스를 시작할 수 없습니다

  28. 28

    systemd로 uwsgi를 제어 할 수 없습니다.

  29. 29

    다른 서비스를 시작할 때 systemd 서비스 중지

뜨겁다태그

보관