xserver 세션이 필요한 시작 스크립트 실행

xserver 세션이 필요한 시작 스크립트 실행

현재 xserver 세션( Ubuntu의 서비스) 에 대한 링크가 필요한 Gtk-module(최근 관리자 기능의 경우 에서 가져옴 ) 을 사용하는 python3 스크립트가 있습니다 .gi.repositorylightdm

콘솔을 통해 (xserver 세션에서) 수동으로 실행하면 작동하지만 자동 실행을 원합니다.

init.d 스크립트는 작동하지 않습니다(DISPLAY 변수를 0.0으로 설정). xvfb-runinit.d 스크립트를 사용하면 내 스크립트가 실행되지만 가상 xserver 환경에서는 예상대로(내 것이 아님) 실행됩니다. init.d 스크립트를 현재 xserver-session에 연결하는 것과 동등한 것이 없습니까?

지금까지 나는 .xinitrc파일을 시도했고(예 ~/, 실행 가능합니다) 를 .xprofile, .xsession, .xsessionrc통해 첫 번째 파일에 대한 모든 링크를 만들었습니다 ln -s. 테스트를 위해 추가하려고 했지만 다시 시작 하거나 전체 PC를 다시 로그인한 gnome-terminal &후에도 터미널이 표시되지 않았습니다 .lightdm

나도 시도해 봤어X 세션 재개에서 구성 스크립트 실행하지만 오류가 발생합니다 Can't open /usr/share/acpi-support/power-funcs.

upstart에서 제안한대로 사용lightdm을 사용하여 시작 스크립트 실행xserver 디스플레이 변수(또는 핸들?)를 제공하지 않을 것입니다. 시작한 후에 실행하십시오. lightdm맞습니까?

아마도 어딘가에 넣을 수 있을까요 xorg.conf? (xrandr 사용자 정의를 영구적으로 만들려면 어떻게 해야 합니까?) 나를 이겼다..

(내 스크립트는 최근 파일의 퀵리스트를 만들어 창과 비슷하게 유니티 런처의 오른쪽 클릭 메뉴에 추가합니다.https://github.com/thirschbuechler/ubuntu-recentquicklists)

답변1

많은 경우와 마찬가지로 여기에서도 타이밍이 주요 문제입니다.

  1. 스크립트는 사용자 수준에서 실행되어야 합니다.로그인 후, 사용자 수준의 실행 프로그램 항목을 편집하기 때문입니다.
  2. 그럼에도 불구하고 스크립트가 수행해야 하는 작업을 살펴보면(설명을 읽으면서) 스크립트는 데스크톱이 완전히 로드될 때까지 약간 기다려야 합니다. Unity Launcher는 로그인 후 가장 먼저 "준비"되는 것이 아닙니다. 스크립트가 너무 일찍 실행되면 중단되거나 대상을 놓칠 수 있습니다.

요컨대

스크립트 appr을 실행해야 합니다. 로그인 후 10~15초 후 다음 중 하나를 추가하면 됩니다.

/bin/bash -c "sleep 15 && python /path/to/script.py"

(스크립트가 실행 가능하지 않은 경우) 또는

/bin/bash -c "sleep 15 && /path/to/script.py"

(스크립트의 경우~이다실행 파일)을 사용자의 시작 응용 프로그램에 추가합니다: Dash > 시작 응용 프로그램 > 추가.

다음을 위해 실행하세요모든 사용자들

스크립트를 실행해야 하는 경우모든 사용자에게(로그인 후) 모든 사용자의 시작 애플리케이션에 한 번에 추가할 수 있습니다.

그렇게 하려면 아래 코드를 빈 파일에 복사하고 다음 줄로 시작하여 줄을 편집한 후 Name=줄의 스크립트에 대한 올바른 경로를 설정하세요.

Exec=/bin/bash -c "sleep 15 && python /path/to/script.py"

그런 다음 파일을 (또는 로 끝나는 한 원하는대로 ) 저장하십시오 /etc/xdg/autostart.launch_script.desktop.desktop

[Desktop Entry]
Name=Name
Exec=/bin/bash -c "sleep 15 && python /path/to/script.py"
Type=Application

관련 정보