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
xsession
paraxsession-real
e 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