์๋ ํ์ญ๋๊น,
x11vnc๋ฅผ ํตํด ๊ธฐ์กด Xorg ์ธ์
์ ๋ํ ์๊ฒฉ ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฃผ์ ์ ๋ํ ๋ง์ ๊ธฐ์ฌ๊ฐ ์ธํฐ๋ท์ ์์ง๋ง ์๊ฒฉ ์ปดํจํฐ ์์ ์์ ์๋ ์ฌ๋์ด ๋ก์ปฌ ๋ชจ๋ํฐ ๋ฐ ์
๋ ฅ์ ์ต์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๋น์ ์ด ๋ฌด์์ ํ๊ณ ์๋์ง ๋ณผ ์ ์๊ณ ์ธ์
์์ ๋ฒํผ์ ๋๋ฅด์ง ์์ต๋๋ค. ์ปท ์๋์๋ x11vnc๋ฅผ RDP๋ฅผ ํตํด Windows์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๋ ์ ์ฌํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ฐ๋ผ์ x11vnc๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ Google์ ๊ฒ์ํ๊ฑฐ๋ ์๋ฅผ ์ฝ์ด ๋ณด์ธ์.
๊ฐ์ํ ๋ : x11nvc๋ฅผ ์คํํ๊ณ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ํ์ง๋ง ์ปดํจํฐ์ ๋ก์ปฌ ์ฝ์์์๋ ๋ณด๊ณ ์ ๋ ฅํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ํฉ๋๋ค: ์๋ฌด๊ฒ๋ ๋ณด๊ฑฐ๋ ์ ๋ ฅํ ์ ์๋๋ก ๋ก์ปฌ ์ฝ์(๋ชจ๋ํฐ + ํค๋ณด๋ + ๋ง์ฐ์ค)์ ๋์ญ์์ค.
๋ชจ๋ํฐ ๋๊ธฐ
๊ฐ์ฅ ๋จผ์ ๋ ์ค๋ฅธ ๊ฒ์ xrandr์ ํตํด ๊ฐ๋จํ ๋ชจ๋ํฐ๋ฅผ ๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$ xrandr --output CRT1 --off
๊ทธ๋ฌ๋ ๋์์ ์๋์ฐ ํ๊ฒฝ(๋๋ KDE๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค)์ ๋ชจ๋ํฐ๊ฐ ์ ๋ง๋ก ๊บผ์ ธ ์๋ค๊ณ ์๊ฐํ๊ธฐ ์์ํ๊ณ ์๋์ฐ์ ํจ๋์ ๋์ง๊ธฐ ์์ํ๊ณ ๋ชจ๋ ๊ฒ์ด ๋ฐ์ผ๋ก ๋๊ฐ์ ์ฌํผ์ง๋๋ค.
๋ชจ๋ํฐ๋ฅผ ์ต๋ ์ ์ ๋ชจ๋๋ก ๋ณด๋ด๋ ๋ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
$ xset dpms force off
ํ์ง๋ง ์ฌ๊ธฐ์๋ ๋ชจ๋ ๊ฒ์ด ์ํํ์ง๋ ์์ต๋๋ค. ์์คํ ์ ์ฒซ ๋ฒ์งธ ์ด๋ฒคํธ์์ ๋ชจ๋ํฐ๋ฅผ ๊นจ์๋๋ค. ์ฃผ๊ธฐ ํํ์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฒํ๋ชฉ์ด ๋์์ด ๋ฉ๋๋ค.
while :
do
xset dpms force off
sleep .5
done
๋ ์ด์ ์๊ฐํ์ง ์์์ต๋๋ค. ๊ฒ์ผ๋ฅด๊ณ ๋ชฉ์ ์ ๋ถํฉํ์ต๋๋ค. ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ๋ง์ฐ์ค๋ฅผ ์์ง์ฌ๋ ๋ชจ๋ํฐ์ ์๋ฌด๊ฒ๋ ํ์๋์ง ์์ต๋๋ค.
UPD :
๊ฐ์ฌ
$ xrandr --output CRT1 --brightness 0
์ ๋ ฅ ์๋ผ๋ด๊ธฐ
์ ๋ ฅ์ ๋นํ์ฑํํ๊ธฐ ์ํด xinput์ ์ฌ์ฉํ์ต๋๋ค. ๋งค๊ฐ๋ณ์ ์์ด ์คํํ๋ฉด ์ฅ์น ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
$ xinput
โก Virtual core pointer id=2 [master pointer (3)]
โ โณ Virtual core XTEST pointer id=4 [slave pointer (2)]
โ โณ Logitech USB Laser Mouse id=9 [slave pointer (2)]
โฃ Virtual core keyboard id=3 [master keyboard (2)]
โณ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
โณ Power Button id=6 [slave keyboard (3)]
โณ Power Button id=7 [slave keyboard (3)]
โณ Sleep Button id=8 [slave keyboard (3)]
โณ USB 2.0 Camera: HD 720P Webcam id=10 [slave keyboard (3)]
โณ HID 041e:30d3 id=11 [slave keyboard (3)]
โณ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
์ฅ์น ๊ฐ์ ์ฝ์ด... ๋นํ์ฑํํ ์ ์์ต๋๋ค. ์ค๋ฅ๊ฐ ํ์๋์ง๋ง ๋๋จธ์ง๋ ์ผ๊ณ ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ง์ฐ์ค ์์ด ์ ์ ๋์ ๋ฐฉ์นํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
xinput disable 9; sleep 60; xinput enable 9
๊ธฐ์ฑํ ์๋ฃจ์
๋ด ๊ฒฝ์ฐ์๋ SSH ์ธ์ ์์ ์คํํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ก์ปฌ ์ ๋ ฅ์ ์ต์ ํ๊ณ x11vnc ์๋ฒ๋ฅผ ๋ฐ์์ํค๋ฉฐ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฃ๋๋ฉด ๋ชจ๋ ๊ฒ์ด ๊ทธ๋๋ก ๋ฐํ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์ธ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ป์์ต๋๋ค. ์ฌ๊ธฐ์ ๊ทธ๊ฒ๋ค์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์ค์์น_๋ก์ปฌ_์ฝ์:
#!/bin/sh
case $1 in
1|on)
desired=1
;;
0|off)
desired=0
;;
*)
echo "USAGE: $0 0|1|on|off"
exit 1
;;
esac
keyboards=`xinput | grep -v "XTEST" | grep "slave keyboard" | sed -re 's/^.*sid=([0-9]+)s.*$/1/'`
mouses=`xinput | grep -v "XTEST" | grep "slave pointer" | sed -re 's/^.*sid=([0-9]+)s.*$/1/'`
monitors=`xrandr | grep " connected" | sed -re 's/^(.+) connected.*$/1/'`
for device in $mouses
do
xinput --set-prop $device "Device Enabled" $desired
done
for device in $keyboards
do
xinput --set-prop $device "Device Enabled" $desired
done
for device in $monitors
do
xrandr --output $device --brightness $desired
done
๋นํ์ฑํ_๋ก์ปฌ_์ฝ์:
#!/bin/sh
trap "switch_local_console 1" EXIT
while :
do
switch_local_console 0
sleep 1
done
์ค์ ๋ก ๊ธฐ๋ณธ ์คํฌ๋ฆฝํธ์ ๋๋ค(๋ชจ๋ํฐ๊ฐ ๋ ๋ ์๊ณ ๊ณตํต ์๋ฒ ํ๋๋ฅผ ์ค์ ํ๊ณ ๊ฐ ๋ชจ๋ํฐ๋ง๋ค ํ๋์ฉ ์ค์ ํ์ต๋๋ค).
vnc_์๋ฒ:
#!/bin/bash
[[ ":0" == "$DISPLAY" ]] && echo "Should be run under ssh session" && exit 1
export DISPLAY=:0
killall x11vnc
rm -r /tmp/x11vnc
mkdir -p /tmp/x11vnc/{5900,5901,5902}
params="-fixscreen V=5 -forever -usepw -noxkb -noxdamage -repeat -nevershared"
echo "Starting VNC servers"
x11vnc -rfbport 5900 $params 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5900 &
x11vnc -rfbport 5901 $params -clip 1920x1080+0+0 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5901 &
x11vnc -rfbport 5902 $params -clip 1920x1080+1920+0 2>&1 | tinylog -k 2 -r /tmp/x11vnc/5902 &
echo "Waiting VNC servers"
while [ `ps afx | grep -c "x11vnc -rfbport"` -ne "4" ]
do
sleep .5
done
echo "Disabling local console"
disable_local_console
echo "Killing VNC servers"
killall x11vnc
๊ทธ๊ฒ ๋ค์ผ. SSH๋ฅผ ํตํด ๋ก๊ทธ์ธํ๊ณ ์คํํ์ธ์. vnc_์๋ฒ, ๊ทธ๊ฐ ์ด์์๋ ๋์ ์ฐ๋ฆฌ๋ vnc๋ฅผ ํตํด ์ก์ธ์คํ ์ ์๊ณ ๋ก์ปฌ ์ฝ์์ ๊บผ์ง๋๋ค.
์ฌ๋ฌ๋ถ์ ๊ด์ฌ์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ์ถ๊ฐ ๋ฐ ๊ฐ์ ์ ํ์ํฉ๋๋ค.
์ถ์ฒ : habr.com