~에서https://unix.stackexchange.com/a/505644/674
SSH를 사용하는 경우 ssh -X 또는 ssh -Y를 사용하여 연결된 화면에 액세스할 수 있습니다. 프로그램은 한 컴퓨터에서 완벽하게 실행되고 다른 컴퓨터에서는 표시됩니다. 따라서 SSH를 통해 원격 시스템에서 light-locker를 실행하면 로컬 디스플레이는 잠기지만 원격 디스플레이는 잠기지 않습니다(gnome-terminal을 실행하거나 다른 명령을 실행하면 원격 시스템에서 실행되지만 로컬로 표시되는 것과 같습니다).
화면을 다시 잠그려면 다시 시작해야 합니다. 하지만 SSH가 아닌 잠그려는 X 세션에서 다시 시작하도록 주의하세요.
SSH를 통해 컴퓨터에 연결되어 있고 화면을 잠그고 싶습니다. 왜 실패했는지, 어떻게 해야 하는지 알려줄 수 있는 사람이 있나요? 감사해요.
$ xscreensaver-command -lock
xscreensaver-command: warning: $DISPLAY is not set: defaulting to ":0.0".
xscreensaver-command: no screensaver is running on display :0.0
$ DISPLAY=:0 xscreensaver-command -lock
xscreensaver-command: no screensaver is running on display :0
원격 호스트에서 실행 중인 X 서버가 없는지 확인하는 방법을 잘 모르겠습니다.
$ ps -A | grep -i xorg
448 ? 00:00:29 Xorg
605 ? 00:00:27 Xorg
766 tty7 05:19:26 Xorg
2175 ? 00:02:58 Xorg
3343 ? 00:00:24 Xorg
8520 ? 00:00:28 Xorg
12564 ? 00:00:22 Xorg
24655 ? 00:00:13 Xorg
26692 ? 00:00:28 Xorg
26704 ? 00:00:25 Xorg
26852 ? 00:00:29 Xorg
27034 ? 00:00:23 Xorg
답변1
X가 어떻게 작동하는지 이해해야 합니다. 로컬 시스템 LOC가 있고 원격 시스템 REM에 대한 SSH가 있습니다. 두 개의 X 디스플레이가 있습니다: LOC:0.0 및 REM:0.0. LOC에서 실행 하면 ssh -X REM
REM에 "LOC:0.0"을 가리키는 "REM:10.0"이라는 새로운 가상 X 디스플레이가 생성됩니다. 따라서 REM에서 프로그램을 실행하면 그래픽이 REM:10으로 전송되고 거기에서 LOC:0.0으로 전송됩니다.
REM에서 VNC 서버를 실행하는 경우 "REM:1.0"으로 표시됩니다(예:). 동일한 컴퓨터에서 다양한 X 디스플레이를 실행하여 응용 프로그램의 출력을 다른 실제 화면이나 가상 화면으로 보낼 수 있습니다.
이제 REM에 연결할 때 "REM:0.0", "REM:1.0" 또는 기타 X 디스플레이(VNC는 특수 X 디스플레이일 뿐임)를 사용하여 로컬로 로그인한 사용자가 있는 경우 해당 화면으로 SSH를 통해 이동할 수 있습니다. 특수 변수 "DISPLAY"의 값을 변경하여.
컴퓨터의 로컬 콘솔에 연결하고 실행하면 다음과 같은 결과 echo $DISPLAY
가 나타납니다.
:0.0
SSH를 사용하여 LOC에서 REM에 연결하고 시작된 애플리케이션을 REM 화면(REM:0.0)에 표시하려면 DISPLAY 값을 변경합니다.
export DISPLAY=:0.0
프로그램을 실행하면 REM 화면에 표시됩니다(물론 동일한 사용자가 세션을 연 경우).
귀하의 경우에는 "REM:0.0"에 열려 있는 세션이 있어야 하지만 그렇지 않습니다. 세션이 VNC를 사용하여 실행 중인 경우 "REM:1.0"이어야 하므로 xscreensaver를 실행하려면 그에 따라 DISPLAY를 설정해야 합니다.
export DISPLAY=:1.0
xscreensaver
xscreensaver-command -lock
답변2
이 솔루션을 사용하려면 xdotool을 설치해야 합니다. 이것은 내 리눅스 민트에서 완벽하게 작동합니다
export DISPLAY=:0
xdotool key Ctrl+alt+l