Você está entendendo mal a maneira como exec e ck-launch-session funcionam.
-
Sempre que
ck-launch-sessioné usado, cria uma nova sessão. Isso significa que você não pode simplesmente adicioná-lo a cada linha do Xstartup - em vez disso, você deve iniciar o script Xstartup inteiro comck-launch-session.Por exemplo, você pode renomear o script
xsessionparaxsession-reale executá-lo da seguinte forma:exec ck-launch-session ~/.vnc/xsession-real -
Sempre que
execé usado, substitui o processo atual pelo novo. Se o script chamarexec xsetroot, o resto do script não será executado. Isso significa que você deve usá-lo apenas para o comando final.(Nota: Isso não se aplica quando
&é usado. Ambosfoo &eexec foo &são equivalentes; eles somente substituem o processo filho que&cria.)#!/bin/sh vncconfig -iconic & unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS export XKL_XMODMAP_DISABLE=1 OS='uname -s' if [ $OS = 'Linux' ]; then case "$WINDOWMANAGER" in *gnome*) if [ -e /etc/SuSE-release ]; then PATH=$PATH:/opt/gnome/bin export PATH fi ;; esac fi if [ -x /etc/X11/xinit/xinitrc ]; then exec /etc/X11/xinit/xinitrc elif [ -f /etc/X11/xinit/xinitrc ]; then exec sh /etc/X11/xinit/xinitrc fi [ -r ~/.Xresources ] && xrdb ~/.Xresources xsetroot -solid grey xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & exec twm