현재 xserver 세션( Ubuntu의 서비스) 에 대한 링크가 필요한 Gtk
-module(최근 관리자 기능의 경우 에서 가져옴 ) 을 사용하는 python3 스크립트가 있습니다 .gi.repository
lightdm
콘솔을 통해 (xserver 세션에서) 수동으로 실행하면 작동하지만 자동 실행을 원합니다.
init.d 스크립트는 작동하지 않습니다(DISPLAY 변수를 0.0으로 설정). xvfb-run
init.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
많은 경우와 마찬가지로 여기에서도 타이밍이 주요 문제입니다.
- 스크립트는 사용자 수준에서 실행되어야 합니다.로그인 후, 사용자 수준의 실행 프로그램 항목을 편집하기 때문입니다.
- 그럼에도 불구하고 스크립트가 수행해야 하는 작업을 살펴보면(설명을 읽으면서) 스크립트는 데스크톱이 완전히 로드될 때까지 약간 기다려야 합니다. 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