TigerVNC가 Systemd 서비스를 시작할 수 없습니다

TigerVNC가 Systemd 서비스를 시작할 수 없습니다

나는 최근에 여기에서 찾은 가이드를 따랐습니다.RHEL 8에 VNC 서버를 설치하는 방법지정된 사용자에 대한 VNC 세션을 생성합니다. 새 사용자 계정을 생성 engineer하고 다음과 같이 새 사용자 계정을 가리키도록 systemd 서비스 파일을 업데이트했습니다.

[engineer@localhost ~]$ cat /etc/systemd/system/[email protected]
[Unit]
Description=Remote Desktop Service (VNC)
After=syslog.target network.target

[Service]
Type=forking
WorkingDirectory=/home/engineer
User=engineer
Group=engineer

PIDFile=/home/engineer/.vnc/%H%i.pid

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -autokill %i
ExecStop=/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

engineer계정에 대한 새 vnc 비밀번호를 만든 다음 서비스 systemctl daemon-reload파일을 만든 후 명령을 실행했습니다. systemctl start vncserver@:1가이드에 따라 이제 다음 오류 메시지가 표시됩니다.

Failed to import environment: Process org.freedesktop.systemd1 exited with status 1

짜증나게도 서비스 파일을 업데이트하기 전까지는 모든 것이 잘 작동했습니다 vncserver@.

흥미롭게도 서비스 파일의 모든 설정을 원래 사용자에게 복원하면 실패하지 않습니다.

답변1

이것은 그 자체로 답이 아닐 수도 있지만 다음 두 소스에서 찾은 정보를 기반으로 필요한 것을 더 간단하게 구현하는 방법을 찾았으므로 공유해야겠다고 생각했습니다.

  1. Red Hat Enterprise Linux 8에서 VNC 서버를 구성하는 방법
  2. TigerVNC 검은색 화면

다음 단계에서는 이미 설치했으며 TigerVNC다른 작업을 수행하지 않았다고 가정합니다.

먼저 사용자 계정에 로그인하고 다음을 실행하여 vnc 비밀번호를 생성했습니다.

$ vncpasswd

메시지가 표시될 때 보기 전용 비밀번호를 설정하지 않았습니다.

vncserver.user다음으로, 다음 위치에 있는 파일을 수정 /etc/tigervnc/하고 파일의 예에 따라 사용자를 추가했습니다.

변경 사항을 저장한 후 다음을 실행하여 /etc/tigervnc/디렉터리에서 내 사용자 계정 디렉터리로 사용자 환경 구성 템플릿을 복사했습니다 .home

$ cp /etc/tigervnc/vncserver-config-mandatory ~/.vnc/config

템플릿을 복사한 후 파일을 편집하여 config세션과 원하는 화면 해상도를 정의했습니다.

session=xfce4-session
geometry=1920x1080

systemd다음으로 다음 명령을 실행하여 서비스 템플릿을 복사했습니다.

$ sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

파일을 올바른 디렉터리에 복사한 후 다음 두 줄을 사용하여 수정했습니다.

Restart=on-success
RestartSec=15

이 두 줄을 추가한 이유는 VNC 세션을 사용하는 동안 데스크톱 환경에서 로그아웃하면 실제로 systemd파일 제공이 중단된다는 점을 알아차렸기 때문입니다. 이러한 추가 라인은 이를 확인한 후 15초 후에 서비스를 다시 시작합니다.

수행할 마지막 단계는 먼저 systemd다음 명령을 실행하여 서비스를 시작하는 것입니다.

$ sudo systemctl start vncserver@:1 

systemd그런 다음 다음 명령을 통해 서비스가 성공적으로 시작되었는지 확인합니다.

$ sudo systemctl status vncserver@:1

서비스가 시작되었음을 확인한 후 systemd포트를 사용하여 IP 주소에 연결을 시도합니다 5901.

모든 것이 만족스러우면 systemd부팅 중에 서비스가 시작되도록 서비스를 활성화했습니다.

$ sudo systemctl enable vncserver@:1

이 정보가 다른 사람들에게 도움이 되기를 바랍니다.

관련 정보