/usr/bin/xinit가 systemd 서비스에서 호출되면 .xinitrc가 무시되는 것 같습니다.

/usr/bin/xinit가 systemd 서비스에서 호출되면 .xinitrc가 무시되는 것 같습니다.

이것은 Xubuntu 18.04에 있습니다.

lightdm을 시작 시 전체 화면으로 실행되는 내 응용 프로그램으로 바꾸려고 합니다.

xinit루트 쉘에서 실행할 수 있으며 /root/.xinitrc 명령을 올바르게 받아들이고 프로그램을 전체 화면에서 실행합니다.

which xinit  #gives "/usr/bin/xinit"

다음 명령을 사용하여 /lib/systemd/system/fullscreen.service 생성을 시도했습니다.

[Unit]
Description=Fullscreen App
#[email protected] plymouth-quit.service
#After=systemd-user-sessions.service [email protected] plymouth-quit.service

[Service]
ExecStart=/usr/bin/xinit

하지만 내가 달릴 때

systemctl daemon-reload
systemctl start fullscreen

단지 루트에 로그인된 xterm 터미널을 로드합니다.

왜 둘 사이에 차이가 있는지 아시나요? 어떻게 xinit직접 실행하게 할 수 있나요?

답변1

시스템 전체 서비스로 시작된 프로세스의 경우 $HOME특별히 설정하지 않으면 환경 변수가 설정되지 않습니다. 그리고 루트 쉘에서 명령을 실행하는 경우 찾기 xinit위해 이를 사용할 가능성이 높습니다 .$HOME/.xinitrc/root/.xinitrc

환경 변수를 추가하는 쉬운 방법은 다음 줄을 추가하는 것입니다.

Environment="HOME=/root"

[Service]귀하의 서비스 파일 에 .

관련 정보