i3wm의 자동 시작으로 bash 스크립트에서 백그라운드 명령 실행

i3wm의 자동 시작으로 bash 스크립트에서 백그라운드 명령 실행

i3 창 관리자(버전 4)를 구성 중인데 가끔 기본 자동 시작을 사용하는 것 같 exec거나 exec_all실패하는 것 같습니다. (*)

i3_autostart.sh그래서 나는 필요한 모든 것을 하나의 정리된 장소에 추가하는 스크립트를 만들기로 결정했습니다 . 이 작업을 수행하는 것과 비슷 KDE하거나 GNOME자체 폴더가 있습니다.

스크립트는 ~/.config/i3/config다음 줄(**)을 사용하여 호출됩니다.

exec_always --no-startup-id /home/beco/.config/i3/i3_autostart.sh

그런 다음 기본적으로 자동 시작하려는 모든 프로그램을 실행하는 함수를 호출하는 자동 시작 스크립트를 입력하십시오. 예는 다음과 같습니다.

Autostart()
{
    # why, o my?
    sleep 1

    # set keyboard bindings
    xkbcomp -w 0 /home/beco/.config/xkbmap_kde $DISPLAY

    # toggle touchpad
    /home/beco/bin/touchpad off 

    # set wallpaper
    feh --bg-scale /home/beco/Pictures/wallpaper/Stonehenge-Desktop-Wallpaper-i3help.png

    # clipboard
    parcellite

    # network manager
    nm-tray

    # why, o my?
    sleep 1

}

를 제외한 모든 프로그램이 정상적으로 시작됩니다 nm-tray. 여러 명령 조합과 기술을 시도했지만 소용이 없었습니다.

내가 본 것에서 문제는 nm-tray가 전경 실행을 좋아하지만 배경을 실행해야 하며 내가 아는 한 명령줄에서 설정할 수 있는 옵션이 없다는 것입니다. 그래서 우리는 bash시설을 이용해야 합니다 .

내 시도는 다음과 같습니다.

  1. 간단한 배경
    # network manager
    nm-tray &
  1. 부정하려고 노력하다
    # network manager
    nm-tray &>/dev/null &
    disown $!
  1. 노헙과 부정
    # network manager
    nohup nm-tray &>/dev/null &
    disown $!

nm-tray가 계속 실행되는지 확인하기 위해 전체 자동 시작 스크립트를 백그라운드에서 실행 중인 상태로 두려고 했습니다.exec_always --no-startup-id /home/beco/.config/i3/i3_autostart.sh &>/dev/null &

클립보드 아이콘과 키보드 아이콘이 보입니다. 터치패드가 꺼짐으로 설정되어 있습니다. 그러나 nm-tray 아이콘은 작동하지 않는다고 주장합니다.

어떤 제안이 있으십니까? 감사해요.

@drbeco


(*) 일부 버그 보고서를 읽었지만 이 질문은 이 문제를 해결하기 위한 것이 아닙니다. 이는 문제가 여전히 존재하는 동안 신뢰할 수 있는 좋은 해결 방법을 만들기 위한 것입니다.

(**) 절대 실패하지 않는 라인이라 exec_always너무 맘에 들어요.

답변1

백그라운드에서 실행을 거부하는(또는 이후에 작동하지 않는) 유일한 프로그램은 터미널이 필요한 프로그램입니다.
문제는 백그라운드에서 시작 nm-tray하지 않기 때문에 전혀 실행되지 않는다는 것입니다. 따라서 이 두 줄 끝에 앰퍼샌드를 추가하고(스스로 분리되지 않는 다른 장기 실행/지속 프로그램을 시작하는 경우 앰퍼샌드를 추가하지만 현재 위 목록에는 없는 것 같습니다) A disavow를 추가하세요. 스크립트를 실행하려면 프로그램이 완료될 때까지 스크립트를 거기에 매달아 두지 마십시오.parcellite


위의 예시 대신 이 블록을 사용해 보세요.

Autostart()
{
    # why, o my?
    sleep 1

    # set keyboard bindings
    xkbcomp -w 0 /home/beco/.config/xkbmap_kde $DISPLAY

    # toggle touchpad
    /home/beco/bin/touchpad off 

    # set wallpaper
    feh --bg-scale /home/beco/Pictures/wallpaper/Stonehenge-Desktop-Wallpaper-i3help.png

    # clipboard
    parcellite &

    # network manager
    nm-tray &

    # detach the started background programs
    disown
    # why, o my?
    #sleep 1

}

관련 정보