X 세션이 열려 있는 동안 .zshrc를 읽습니까? / X 세션이 열려 있을 때 스크립트를 어떻게 실행하나요?

X 세션이 열려 있는 동안 .zshrc를 읽습니까? / X 세션이 열려 있을 때 스크립트를 어떻게 실행하나요?

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

.zshrczsh 구성 파일입니다. zsh의 대화형 인스턴스를 시작할 때 읽혀집니다. 대화형 셸은 터미널에서 상호 작용하는 셸입니다. GUI 로그인에는 대화형 쉘이 포함되지 않습니다(btw, zsh는 일반적인 시스템에 전혀 포함되지 않습니다).

.zshrcGUI 구성에 도움을 줄 수 없습니다. 터미널 에뮬레이터를 열거나 텍스트 콘솔에 로그인하거나 네트워크를 통해 읽을 때 읽혀집니다. 당신이 하고 싶은 일에 대해서는 결코 적절한 시기에 읽히지 않을 것입니다.

세션이 열려 있는 동안 명령을 실행하는 완전히 이식 가능한 방법은 없습니다. 가장 안정적인 방법은 창 관리자 데스크톱 환경에 실행 도구가 있는 경우(대부분 그렇게 함) 이를 사용하는 것입니다. 이는 배포와 관련이 없는 유일한 방법입니다.

를 통해 GUI를 실행하면 startx명령이 실행되므로 ~/.xinitrc거기에 명령을 입력하세요.

그래픽 모드 로그인의 경우 DE/WM 독립적인 방식을 원한다면 배포에 따라 여러 후크를 제공해야 합니다. 디스플레이 관리자, 데스크탑 환경(또는 세션 관리자 또는 창 관리자) 및 배포판(또는 시스템 관리자)이 세션 유형을 설정하는 방법에 따라 다음에서 실행할 명령을 제공할 수 있는 파일이 있을 수도 있고 없을 수도 있습니다. GUI 로그인.

  • 사용자 정의 세션에 로그인한 경우~/.xsession 오직. 이 파일의 목적은 DE/SM/WM을 포함한 모든 것을 시작하는 것입니다.
  • 일부 구성에서는 ~/.xprofile읽혀집니다.
  • 일부 구성에서는 ~/.xsessionrc읽혀집니다.

.xprofile파일이 .xsessionrc너무 일찍 실행되거나 실행되면 코드가 나중에 실행되도록 더티 트릭을 사용해야 할 수도 있습니다. 스크립트 /etc/X11/Xsession.d또는 이와 유사한 것을 확인하십시오. 이는 배포에 더 의존적입니다. 다시 한 번 말하지만, GUI 로그인과 모든 시스템 관련 코드를 실행하는 가장 간단하고 이식 가능한 방법은 창 관리자나 데스크탑 환경에 실행 명령을 선언하는 것입니다. 실제로 시스템 세션 시작 스크립트에 연결되는 스크립트를 사용하는 주된 이유는 코드를 조기에 실행하기 위한 것입니다. 예를 들어 WM/DE가 호출되는 방식을 변경하려고 하기 때문입니다.

1Display Manager는 그래픽 모드로 로그인할 때 비밀번호를 묻는 프로그램입니다.

관련 정보