рдирдорд╕реНрдХрд╛рд░,
рддреНрдпрд╣рд╛рдБ x11vnc рдорд╛рд░реНрдлрдд рдЕрд╡рд╕реНрдерд┐рдд Xorg рд╕рддреНрд░рдорд╛ рд░рд┐рдореЛрдЯ рдЬрдбрд╛рди рдХрд╕рд░реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рд╡рд┐рд╖рдпрдорд╛ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдзреЗрд░реИ рд▓реЗрдЦрд╣рд░реВ рдЫрдиреН, рддрд░ рдореИрд▓реЗ рд╕реНрдерд╛рдиреАрдп рдордирд┐рдЯрд░ рд░ рдЗрдирдкреБрдЯрд▓рд╛рдИ рдХрд╕рд░реА рджрдмрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдХрддреИ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдХреЛ рдЫреИрди рддрд╛рдХрд┐ рд░рд┐рдореЛрдЯ рдХрдореНрдкреНрдпреБрдЯрд░рдХреЛ рдЫреЗрдЙрдорд╛ рдмрд╕реНрдиреЗ рдЬреЛ рдХреЛрд╣реАрд▓реЗ рддрдкрд╛рдИрд▓реЗ рдХреЗ рдЧрд░рд┐рд░рд╣рдиреБ рднрдПрдХреЛ рджреЗрдЦреНрдиреБрд╣реБрдиреНрди рд░ рддрдкрд╛рдЗрдБрдХреЛ рд╕рддреНрд░рдорд╛ рдмрдЯрди рдерд┐рдЪреНрджреИрдиред рддрд▓ рдХрд╛рдЯрд┐рдПрдХреЛ рдореЗрд░реЛ рд╡рд┐рдзрд┐ рд╣реЛ рдХрд╕рд░реА x11vnc рд▓рд╛рдИ RDP рдорд╛рд░реНрдлрдд рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдмрдирд╛рдЙрдиреЗред
рддреНрдпрд╕реЛрднрдП, рдорд╛рдиреМрдВ рддрдкрд╛рдИрд▓рд╛рдИ x11vnc рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдерд╛рд╣рд╛ рдЫ, рдпрджрд┐ рд╣реЛрдЗрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдЧреБрдЧрд▓ рд╡рд╛ рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред .
рджрд┐рдЗрдПрдХреЛ: рд╣рд╛рдореА x11nvc рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, рдпрд╕рд▓рд╛рдИ рдЧреНрд░рд╛рд╣рдХрд╕рдБрдЧ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВ, рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрджрдЫ, рддрд░ рдХрдореНрдкреНрдпреБрдЯрд░рдХреЛ рд╕реНрдерд╛рдиреАрдп рдХрдиреНрд╕реЛрд▓ рдкрдирд┐ рд╣реЗрд░реНрди рд░ рдЗрдирдкреБрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫред
рд╣рд╛рдореА рдЪрд╛рд╣рдиреНрдЫреМрдВ: рд╕реНрдерд╛рдиреАрдп рдХрдиреНрд╕реЛрд▓ (рдореЛрдирд┐рдЯрд░ + рдХрд┐рдмреЛрд░реНрдб + рдорд╛рдЙрд╕) рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рдХреЗрд╣рд┐ рджреЗрдЦреНрди рд╡рд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред
рдореЛрдирд┐рдЯрд░рд╣рд░реВ рдмрдиреНрдж рдЧрд░реНрджреИ
рджрд┐рдорд╛рдЧрдорд╛ рдЖрдПрдХреЛ рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рднрдиреЗрдХреЛ xrandr рдорд╛рд░реНрдлрдд рдореЛрдирд┐рдЯрд░ рдмрдиреНрдж рдЧрд░реНрдиреБ рдерд┐рдпреЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛ:
$ xrandr --output CRT1 --off рддрд░ рдПрдХреИ рд╕рдордпрдорд╛, рд╕рдЮреНрдЭреНрдпрд╛рд▓ рд╡рд╛рддрд╛рд╡рд░рдг (рдорд╕рдБрдЧ рдХреЗрдбреАрдИ рдЫ) рд▓реЗ рдордирд┐рдЯрд░ рд╕рд╛рдБрдЪреНрдЪреИ рдмрдиреНрдж рдЫ рднрдиреЗрд░ рд╕реЛрдЪреНрди рдерд╛рд▓реНрдЫ рд░ рд╕рдЮреНрдЭреНрдпрд╛рд▓ рд░ рдкреНрдпрд╛рдирд▓рд╣рд░реВ рдлрд╛рд▓реНрди рдерд╛рд▓реНрдЫ, рд╕рдмреИ рдмрд╛рд╣рд┐рд░ рд╕рд░реНрдЫ рд░ рджреБрдГрдЦреА рд╣реБрдиреНрдЫред
рддреНрдпрд╣рд╛рдБ рдПрдХ рдердк рд░реЛрдЪрдХ рддрд░рд┐рдХрд╛ рд╣реЛ, рдЬреБрди рдордирд┐рдЯрд░рд▓рд╛рдИ рд╣рд╛рдЗрдмрд░рдиреЗрд╕рдирдорд╛ рдкрдард╛рдЙрдиреЗ рд╣реЛ, рддрдкрд╛рдИрд▓реЗ рдпреЛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдпреЛ:
$ xset dpms force offрддрд░ рдпрд╣рд╛рдБ рдкрдирд┐, рд╕рдмреИ рдЪрд┐рд▓реНрд▓реЛ рдЫреИрдиред рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдкрд╣рд┐рд▓реЛ рдШрдЯрдирд╛рдорд╛ рдордирд┐рдЯрд░ рдЙрдард╛рдЙрдБрдЫред рдПрдХ рдЪрдХреНрд░ рдХреЛ рд░реВрдк рдорд╛ рд╕рд░рд▓ рдмреИрд╕рд╛рдЦреА рдорджреНрджрдд рдЧрд░реНрдЫ:
while :
do
xset dpms force off
sleep .5
doneрдореИрд▓реЗ рдердк рд╕реЛрдЪреЗрдХреА рдерд┐рдЗрди - рдо рдЕрд▓реНрдЫреА рдерд┐рдПрдБ, рдпрд╕рд▓реЗ рдпрд╕рдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдкреВрд░рд╛ рдЧрд░реНрджрдЫ - рдореЛрдирд┐рдЯрд░рд╣рд░реВрд▓реЗ рдХреЗрд╣рд┐ рджреЗрдЦрд╛рдЙрдБрджреИрдирдиреН, рдпрджрд┐ рдореИрд▓реЗ рдмрдЯрдирд╣рд░реВ рдерд┐рдЪреЗрдБ рднрдиреЗ, рдорд╛рдЙрд╕ рд╕рд╛рд░реНрдиреБрд╣реЛрд╕реН, рдЗрддреНрдпрд╛рджрд┐ред
UPS:
╨б╨┐╨░╤Б╨╕╨▒╨╛ рдЪрдордХрд▓рд╛рдИ рд╢реВрдиреНрдпрдорд╛ рдмрджрд▓реНрдиреЗ рдЕрд░реНрдХреЛ рд╡рд┐рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐:
$ 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 рд╕рд░реНрднрд░рд▓рд╛рдИ рдмрдврд╛рдЙрдБрдЫ, рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ рдлрд░реНрдХрд┐рдиреНрдЫред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рддреАрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкрд╛рдпреМрдВ, рддрд┐рдиреАрд╣рд░реВ рдпрд╣рд╛рдБ рдЫрдиреН (рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ)ред
switch_local_console:
#!/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
disable_local_console:
#!/bin/sh
trap "switch_local_console 1" EXIT
while :
do
switch_local_console 0
sleep 1
doneрд╡рд╛рд╕реНрддрд╡рдорд╛, рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдорд╕рдБрдЧ рджреБрдИ рдореЛрдирд┐рдЯрд░рд╣рд░реВ рдЫрдиреН, рдореИрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдордирд┐рдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рд╕рд╛рдЭрд╛ рд╕рд░реНрднрд░ рд░ рдПрдЙрдЯрд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реЗрдХреЛ рдЫреБ)ред
vnc_server:
#!/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_server, рдЬрдм рдЙрд╣рд╛рдБ рдЬреАрд╡рд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ, рд╣рд╛рдореАрд╕рдБрдЧ vnc рдорд╛рд░реНрдлрдд рдкрд╣реБрдБрдЪ рдЫ рд░ рд╕реНрдерд╛рдиреАрдп рдХрдиреНрд╕реЛрд▓ рдирд┐рднрд┐рдПрдХреЛ рдЫред
рддрдкрд╛рдИрдВрдХреЛ рдзреНрдпрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, рдердк рд░ рд╕реБрдзрд╛рд░рд╣рд░реВ рд╕реНрд╡рд╛рдЧрдд рдЫред
рд╕реНрд░реЛрдд: www.habr.com
