]>
git.proxmox.com Git - mirror_novnc.git/blob - utils/launch.sh
8 echo "Usage: ${NAME} [--web WEB_PORT] [--proxy PROXY_PORT] [--vnc VNC_HOST:PORT]"
10 echo "Starts a mini-webserver and the WebSockets proxy and"
11 echo "provides a cut and paste URL to go to."
13 echo " --web WEB_PORT Port to serve web pages at"
15 echo " --proxy PROXY_PORT Port for proxy to listen on"
17 echo " --vnc VNC_HOST:PORT VNC server host:port proxy target"
18 echo " Default: localhost:5900"
23 HERE
="$(cd "$
(dirname "$0")" && pwd)"
26 VNC_DEST
="localhost:5900"
36 trap - TERM QUIT INT EXIT
37 trap "true" CHLD
# Ignore cleanup messages
39 if [ -n "${web_pid}" ]; then
40 echo "Terminating webserver (${web_pid})"
43 if [ -n "${proxy_pid}" ]; then
44 echo "Terminating WebSockets proxy (${proxy_pid})"
51 # Arguments that only apply to chrooter itself
53 param
=$1; shift; OPTARG
=$1
55 --web) WEB_PORT
="${OPTARG}"; shift ;;
56 --proxy) PROXY_PORT
="${OPTARG}"; shift ;;
57 --vnc) VNC_DEST
="${OPTARG}"; shift ;;
59 -*) usage
"Unknown chrooter option: ${param}" ;;
65 which netstat
>/dev
/null
2>&1 \
66 || die
"Must have netstat installed"
68 netstat
-ltn |
grep -qs "${WEB_PORT}.*LISTEN" \
69 && die
"Port ${WEB_PORT} in use. Try --web WEB_PORT"
71 netstat
-ltn |
grep -qs "${PROXY_PORT}.*LISTEN" \
72 && die
"Port ${PROXY_PORT} in use. Try --proxy PROXY_PORT"
74 trap "cleanup" TERM QUIT INT EXIT
77 if [ -e "$(pwd)/vnc.html" ]; then
79 elif [ -e "${HERE}/../vnc.html" ]; then
81 elif [ -e "${HERE}/vnc.html" ]; then
84 die
"Could not find vnc.html"
88 echo "Starting webserver on port ${WEB_PORT}"
89 ${HERE}/web.py
${WEB_PORT} >/dev
/null
&
92 if ps
-p ${web_pid} >/dev
/null
; then
93 echo "Started webserver (pid: ${web_pid})"
96 echo "Failed to start webserver"
100 echo "Starting WebSockets proxy on port ${PROXY_PORT}"
101 ${HERE}/wsproxy.py -f ${PROXY_PORT} ${VNC_DEST} &
104 if ps
-p ${proxy_pid} >/dev
/null
; then
105 echo "Started WebSockets proxy (pid: ${proxy_pid})"
108 echo "Failed to start WebSockets proxy"
112 echo -e "\n\nNavigate to to this URL:\n"
113 echo -e " http://$(hostname):${WEB_PORT}/vnc.html?host=$(hostname)&port=${PROXY_PORT}\n"
114 echo -e "Press Ctrl-C to exit\n\n"