X 세션이 열릴 때 실행해야 하는 사용자 정의 명령(마우스 구성)이 있습니다.
이를 사용하여 스크립트를 만들었고 이제 세션이 열릴 때 실행되는지 확인하고 싶습니다.
일부 배포판 종속 솔루션(런처 등)이 있지만 저는 오히려 Linux 수준 솔루션을 찾고 싶습니다(저는 배포판을 꽤 자주 변경합니다).
.zshrc
(또는 )에서 스크립트를 가져올 수 있지만 터미널이 열릴 때까지는 실행되지 .bashrc
않을 것 같습니다 . 그렇지 않습니까?.zshrc
~
또한 이 구성을 시스템이 아닌 내 저장소에서 사용자별로 구성하고 싶습니다 .
어떻게 해야 하나요?
답변1
일반적인 설정은 X 디스플레이 관리자가 /etc/X11/Xsession
쉘 스크립트를 실행하고 해당 스크립트가 디렉토리에서 스크립트를 가져오거나 실행하는 것입니다 /etc/X11/Xsession.d
.
Ubuntu 배포판(및 기타 Debian 파생 제품)에서 이 디렉터리의 표준 파일 중 하나는 .xsessionrc
홈 디렉터리에서 파일을 가져옵니다(존재하는 경우)(기본적으로 존재하지 않음).
파일을 생성하면 다른 .*rc
파일 가져오기나 다른 명령을 포함하여 관련 명령을 파일에 넣을 수 있습니다. 비쉘 애플리케이션(즉, 터미널 에뮬레이션에서 실행되지 않는 애플리케이션)에 대한 환경 변수를 설정하는 것이 유용합니다.
노트:
- 일부 배포판에는
.xsessionrc
소스가 없습니다./etc/X11/Xsession.d
디렉터리를 확인해야 합니다 . 사용자의 리소스를 얻는 것은.xsessionrc
일반적/etc/X11/Xsession.d/40x11-common_xsessionrc
으로 스크립트에 의해 수행됩니다. 파일이 존재하지 않고 다른 스크립트 소스가 없는 경우.xsessionrc
언제든지 자신만의 스크립트를 추가하여 소스를 생성할 수 있습니다. - 실행 중인 쉘은
/etc/X11/Xsession
일반적으로/bin/sh
선호하는 쉘에 대한 심볼릭 링크일 수도 있고 아닐 수도 있습니다. 쉘의 기능을 확인해야 합니다. 예를 들어, 을 사용하면[[
작동하지 않을 수 있습니다..
명령은export
일반적으로 안전합니다.
답변2
"세션 열기"가 무엇을 이해하는지 잘 모르겠지만 .xxxrc
대화형 셸이 시작될 때마다 셸 관련 파일이 POSIX에 따라 호출됩니다.
이는 현재 세션 내의 중첩된 쉘뿐만 아니라 로그인 쉘에도 적용됩니다.
답변3
.zshrc
zsh 구성 파일입니다. zsh의 대화형 인스턴스를 시작할 때 읽혀집니다. 대화형 셸은 터미널에서 상호 작용하는 셸입니다. GUI 로그인에는 대화형 쉘이 포함되지 않습니다(btw, zsh는 일반적인 시스템에 전혀 포함되지 않습니다).
.zshrc
GUI 구성에 도움을 줄 수 없습니다. 터미널 에뮬레이터를 열거나 텍스트 콘솔에 로그인하거나 네트워크를 통해 읽을 때 읽혀집니다. 당신이 하고 싶은 일에 대해서는 결코 적절한 시기에 읽히지 않을 것입니다.
세션이 열려 있는 동안 명령을 실행하는 완전히 이식 가능한 방법은 없습니다. 가장 안정적인 방법은 창 관리자 데스크톱 환경에 실행 도구가 있는 경우(대부분 그렇게 함) 이를 사용하는 것입니다. 이는 배포와 관련이 없는 유일한 방법입니다.
를 통해 GUI를 실행하면 startx
명령이 실행되므로 ~/.xinitrc
거기에 명령을 입력하세요.
그래픽 모드 로그인의 경우 DE/WM 독립적인 방식을 원한다면 배포에 따라 여러 후크를 제공해야 합니다. 디스플레이 관리자, 데스크탑 환경(또는 세션 관리자 또는 창 관리자) 및 배포판(또는 시스템 관리자)이 세션 유형을 설정하는 방법에 따라 다음에서 실행할 명령을 제공할 수 있는 파일이 있을 수도 있고 없을 수도 있습니다. GUI 로그인.
- 사용자 정의 세션에 로그인한 경우
~/.xsession
오직. 이 파일의 목적은 DE/SM/WM을 포함한 모든 것을 시작하는 것입니다. - 일부 구성에서는
~/.xprofile
읽혀집니다. - 일부 구성에서는
~/.xsessionrc
읽혀집니다.
.xprofile
파일이 .xsessionrc
너무 일찍 실행되거나 실행되면 코드가 나중에 실행되도록 더티 트릭을 사용해야 할 수도 있습니다. 스크립트 /etc/X11/Xsession.d
또는 이와 유사한 것을 확인하십시오. 이는 배포에 더 의존적입니다. 다시 한 번 말하지만, GUI 로그인과 모든 시스템 관련 코드를 실행하는 가장 간단하고 이식 가능한 방법은 창 관리자나 데스크탑 환경에 실행 명령을 선언하는 것입니다. 실제로 시스템 세션 시작 스크립트에 연결되는 스크립트를 사용하는 주된 이유는 코드를 조기에 실행하기 위한 것입니다. 예를 들어 WM/DE가 호출되는 방식을 변경하려고 하기 때문입니다.
1Display Manager는 그래픽 모드로 로그인할 때 비밀번호를 묻는 프로그램입니다.