Шукати в цьому блозі

понеділок, 31 травня 2010 р.

xubuntu 10.04 + VNC Server

Задача установить VNC сервер с графической средой XFCE.
Устанавливаем сервер:
apt-get install tightvncserver xtightvncviewer

Создаем файл (пользователь emutant разрешение экрана 800х600):
sudo nano /etc/init.d/vncserver


С содержимым:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: networking
# Default-Start: S
# Default-Stop: 0 6### END INIT INFO
PATH="$PATH:/usr/X11R6/bin/"

# The Username:Group that will run VNC
export USER="emutant"
#${RUNAS}
# The display that VNC will use
DISPLAY="1"

# Color depth (between 8 and 32)
DEPTH="16"

# The Desktop geometry to use.
GEOMETRY="800x600"
#GEOMETRY="1024x768"
#GEOMETRY="1280x1024"

# The name that the VNC Desktop will have.
NAME="emutant-vnc-server"
OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}";;
restart)
$0 stop
$0 start
;;
esac

exit 0


делаем исполняемым

sudo chmod +x /etc/init.d/vncserver

-rwxr-xr-x 1 root root 994 2010-05-31 11:49 vncserver

Создаем каталог:mkdir /home/emutant/.vnc

а также файл запуска XFCE4: nano /home/emutant/.vnc/vnc-xfce4
с содержимым:

#!/bin/sh
xfce-mcs-manager &
xfwm4 &
xfdesktop &
xfce4-panel &


Делаем исполняемым: chmod +x /home/emutant/.vnc/vnc-xfce4

Создаем xstartup script: nano /home/emutant/.vnc/xstartup

с содержимым:
#!/bin/sh
exec dbus-launch ~/.vnc/vnc-xfce4


Делаем исполняемым: chmod +x /home/emutant/.vnc/xstartup


Запускаем: /etc/init.d/vncserver start

Отвечаем на вопросы - назначаем пароли для доступа.

В результате в каталоге /home/emutant/.vnc появляются еще 3 файла: *.pid, *.log, passwd

В качестве клиента используем TightVNC или RealVNC

При соединении указываем ip:1.

bash script - find and kill pid

Иногда, необходимо "убить" запущенный скрипт (в моем случае Perl-script scriptname.pl) не зная его pid, решение на bash приведено ниже:

#!/bin/bash
PID=`ps -ef | awk '/scriptname.pl/{ print $2 }'|sed -n 1p`
echo $PID
kill $PID




UPDATE: 30.06.2010г.
Один камрад по имени Максим, жутко раскритиковал мой метод за нерациональность и привел свой пример, код ниже:

#!/bin/bash
PID=`ps ux | awk '/scriptname.pl/ && !/awk/ {print $2}'`
echo $PID
kill $PID