~siretart/x2go/x2goserver-FAU-trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/bin/bash

DISPLAY=":$1"
X2GO_AGENT_PID=$2
X2GO_SESSION=$3
cmd=$5
sndsys=$6
X2GO_SESS_TYPE=$7
export DISPLAY
export X2GO_AGENT_PID
export X2GO_SESSION
cmd=`echo $cmd |sed 's/X2GO_SPACE_CHAR/ /g'`

X2GO_ROOT=${HOME}/.x2go
MESSAGE_FILE=$X2GO_ROOT/C-$X2GO_SESSION/cmdoutput
echo "exec $cmd" >> $MESSAGE_FILE

IMEXIT="false"

if [ "$sndsys" == "esd" ]
then
  export ESPEAKER=localhost:$4
elif [ "$sndsys" == "arts" ]
then 
  export ARTS_SERVER=localhost:$4
fi

if [ "$cmd" == "WWWBROWSER" ]
then
     if [ -e "/usr/bin/firefox" ]
     then
         cmd="/usr/bin/firefox"
     elif  [ -e "/usr/bin/iceweasel" ]
     then
         cmd="/usr/bin/iceweasel"
     elif  [ -e "/usr/bin/abrowser" ]
     then
         cmd="/usr/bin/abrowser"
     elif  [ -e "/usr/bin/konqueror" ]
     then
         cmd="/usr/bin/konqueror"
     elif  [ -e "/usr/bin/galeon" ]
     then
         cmd="/usr/bin/galeon"
     fi
fi

if [ "$cmd" == "MAILCLIENT" ]
then
     if [ -e "/usr/bin/thunderbird" ]
     then
         cmd="/usr/bin/thunderbird"
     elif  [ -e "/usr/bin/icedove" ]
     then
         cmd="/usr/bin/icedove"
     elif  [ -e "/usr/bin/kmail" ]
     then
         cmd="/usr/bin/kmail"
     elif  [ -e "/usr/bin/evolution" ]
     then
         cmd="/usr/bin/evolution"
     fi
fi

if [ "$cmd" == "OFFICE" ]
then
     if [ -e "/usr/bin/ooffice" ]
     then
         cmd="/usr/bin/ooffice"
     fi
fi

if [ "$cmd" == "TERMINAL" ]
then
     IMEXIT="true"
     if [ -e "/usr/bin/konsole" ]
     then
         cmd="/usr/bin/konsole"
     elif  [ -e "/usr/bin/gnome-terminal" ]
     then
         cmd="/usr/bin/gnome-terminal"
     elif  [ -e "/usr/bin/rxvt" ]
     then
         cmd="/usr/bin/rxvt"
     elif  [ -e "/usr/bin/xterm" ]
     then
         cmd="/usr/bin/xterm"
     fi
fi

EXEC=`which $cmd`

BNAME=`basename $EXEC`
if [ "$BNAME" == "rdesktop" ]
then
     IMEXIT="true"
fi

if [ "$EXEC" != "" ] && [ -x `which $cmd` ]
then
  $cmd
  #### some applications can quit immediately, we waiting until x2goagent exists
  if [  "$X2GO_SESS_TYPE" == "R" ] && [ "$IMEXIT" == "false" ]
  then
     while [ -d /proc/$X2GO_AGENT_PID ]
     do
         sleep 1
     done
  fi
else
   echo "X2GORUNCOMMAND ERR NOEXEC:$cmd" > $MESSAGE_FILE
fi 

kill -TERM  $X2GO_AGENT_PID
sudo x2gopgwrapper changestatus 'F' $X2GO_SESSION  > /dev/null
export HOSTNAME
x2goumount_session $X2GO_SESSION