VNC 자동시작 스크립트 설명
DISPLAY_NUM은 사용자의 UID를 수집하여 해당 번호로 VNC를 실행 시키며, VNC 비밀번호를 별도로 설정한적 없다면 기본적으로 “p@ssw0rd”으로 설정되게 됩니다.
해당 스크립트를 제작하여 chmod 755 권한으로 설정한 뒤 사용자들의 corntab에 * * * * * /bin/bash /ServerPath/VNC_Auto_Start.sh 이렇게 등록하면 1분 간격으로 실행중인지 아닌지 확인하여 자동으로 시작하게 만들어 줍니다.
# 사용자의 사용쉘 환경이 bash가 아닐 경우 아래의 예시처럼 SHELL를 지정한 후 그 아래에 스크립트를 지정해주세요.
SHELL=/bin/tcsh
* * * * * /bin/bash /ServerPath/VNC_Auto_Start.sh
VNC 자동시작 스크립트(한글버전)
#!/bin/bash
# 디스플레이 번호와 해상도 설정
DISPLAY_NUM=`id -u $USER | tail -c 4 | head -c 3 | awk '{print int($0)}'`
GEOMETRY="3840x1080"
# xstartup 파일의 위치 설정
XSTARTUP_FILE="/ServerConfigFile/xstartup"
# VNC 비밀번호 설정
VNC_PASSWORD="p@ssw0rd"
# VNC 프로세스가 실행 중인지 확인
if pgrep -u $USER -x "Xvnc" > /dev/null; then
echo "VNC 서버는 이미 사용자 $USER에 대해 실행 중입니다."
else
# 만약 VNC 프로세스가 실행 중이 아니라면 시작
echo "VNC 서버 시작 중..."
# 비밀번호가 설정되어 있는지 확인
if ! [ -f "$HOME/.vnc/passwd" ]; then
# 비밀번호가 설정되어 있지 않다면 자동으로 설정
echo "VNC 비밀번호 설정 중..."
expect -c "
set timeout 10
spawn vncpasswd
expect \"Password:\"
send \"$VNC_PASSWORD\n\"
expect \"Verify:\"
send \"$VNC_PASSWORD\n\"
expect \"Would you like to enter a view-only password (y/n)?\"
send \"n\n\"
expect eof
"
fi
# VNC 서버 시작
vncserver :$DISPLAY_NUM -depth 24 -geometry $GEOMETRY -xstartup $XSTARTUP_FILE -nolisten tcp
fi
VNC 자동시작 스크립트(영문버전)
#!/bin/bash
# Set the display number and geometry
DISPLAY_NUM=`id -u $USER | tail -c 4 | head -c 3 | awk '{print int($0)}'`
GEOMETRY="3840x1080"
# Set the location of the xstartup file
XSTARTUP_FILE="/ServerConfigFile/xstartup"
# Set the VNC password
VNC_PASSWORD="p@ssw0rd"
# Check if the VNC process is running
if pgrep -u $USER -x "Xvnc" > /dev/null; then
echo "VNC is already running for user $USER."
else
# If the VNC process is not running, start it
echo "Starting VNC server..."
# Check if a password has been set
if ! [ -f "$HOME/.vnc/passwd" ]; then
# If a password has not been set, set one automatically
echo "Setting VNC password..."
expect -c "
set timeout 10
spawn vncpasswd
expect \"Password:\"
send \"$VNC_PASSWORD\n\"
expect \"Verify:\"
send \"$VNC_PASSWORD\n\"
expect \"Would you like to enter a view-only password (y/n)?\"
send \"n\n\"
expect eof
"
fi
# Start the VNC server
vncserver :$DISPLAY_NUM -depth 24 -geometry $GEOMETRY -xstartup $XSTARTUP_FILE -nolisten tcp
fi