71 lines
1.1 KiB
Bash
Executable file
71 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
perror() {
|
|
>&2 printf '\033[1;31mERROR:\033[0m \033[1m%s\033[0m\n' "$*"
|
|
}
|
|
|
|
usage() {
|
|
name=$(basename "$0")
|
|
|
|
cat << EOF
|
|
${name}: usage
|
|
${name} [status] - show if the server is running
|
|
${name} start|stop|restart - control the server
|
|
${name} help|usage - show help
|
|
EOF
|
|
}
|
|
|
|
error_usage() {
|
|
perror "invalid usage"
|
|
>&2 usage
|
|
|
|
exit 1
|
|
}
|
|
|
|
is_running() {
|
|
vncserver -list | grep -q '^:1'
|
|
}
|
|
|
|
start() {
|
|
if ! is_running; then
|
|
set -- vncserver \
|
|
-localhost -alwaysshared \
|
|
-securitytypes none
|
|
[ -x ~/.vnc/xstartup ] && set -- "$@" -xstartup ~/.vnc/xstartup
|
|
|
|
"$@"
|
|
else
|
|
perror "server already started"
|
|
return 2
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
if is_running; then
|
|
vncserver -kill :1
|
|
else
|
|
perror "server is not running"
|
|
return 2
|
|
fi
|
|
}
|
|
|
|
status() {
|
|
if is_running; then
|
|
printf '\033[1;32m*\033[0m \033[1m%s\n' "the server is running"
|
|
else
|
|
printf '\033[1;31m*\033[0m \033[1m%s\n' "the server is not running"
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
""|stat*) status ;;
|
|
star*) start ;;
|
|
sto*) stop ;;
|
|
r*)
|
|
stop
|
|
start
|
|
;;
|
|
h*|u*) usage ;;
|
|
*)
|
|
error_usage
|
|
;;
|
|
esac
|