Thanks folks,
I checked the permissions and they seem ok, I also ticked the "run in terminal" checkbox. I've since hacked up the shell script I'm trying to run (which was generated by the installation of the package) and found it DOES execute, but it seems the script loops back and calls itself like so:
$0 start2 &
This is the bit that doesnt seem to run

The full script looks something like:
#!/bin/sh
#
# Variables Used:
# $USER_MAGIC_FOLDER_2$ = /usr/local/appserver/config/Main
# $MYROOT$ = /usr/local/appserver/config
# $OMAPORT$ = 8561
DIR=/usr/local/appserver/config/Main/MyServer
MYCMD=/usr/local/appserver/config/myapp
PORT=8561
SERVERUSER=user
# Are we super user
if id | grep "^uid=0(" >/dev/null 2>&1 ; then
root=1
else
root=0
fi
# See how we were called
case "$1" in
start)
if [ -f $DIR/server.pid ]; then
pid=`cat $DIR/server.pid`
kill -0 $pid
if [ $? -eq 0 ]; then
echo "Server (pid $pid) is already running..."
exit 0
fi
rm $DIR/server.pid
fi
$0 start2 &
;;
start2)
cd $DIR/..
if [ $root -eq 1 ]; then
su - $SERVERUSER -c "cd $DIR/..; $MYCMD -log $DIR/logs/Server_%Y.%m.%d.log -noautoexec -memsize MAX -netencralg \"proprietary\" -pagesize MAX -linesize MAX -user $DIR/user -logparm \"rollover=auto open=replaceold write=immediate\" -noterminal -objectserver -objectserverparms \"cel=credentials protocol=bridge port=$PORT &
else
nohup $MYCMD -log $DIR/logs/Server_%Y.%m.%d.log -noautoexec -memsize MAX -netencralg "proprietary" -pagesize MAX -linesize MAX -sasuser $DIR/user -logparm "rollover=auto open=replaceold write=immediate" -noterminal 2>&1 &
fi
pid=$!
echo $pid > $DIR/server.pid
echo "Server (pid $pid) is running..."
# Trap signals 9 and 15 and pass on to child process
trap 'kill $pid' 2 3 15
wait $!
rm "$DIR/server.pid"
echo "Server is stopped"
;;
stop)
if [ -f $DIR/server.pid ]; then
kill `cat $DIR/server.pid`
else
echo "Server is stopped"
exit 1
fi
;;
status)
if [ -f $DIR/server.pid ]; then
pid=`cat $DIR/server.pid`
kill -0 $pid
if [ $? -eq 0 ]; then
echo "Server (pid $pid) is running..."
fi
else
echo "Server is stopped"
fi
;;
restart)
$0 stop
if [ $? -eq 0 ]; then
sleep 5
$0 start
fi
;;
*)
echo "Usage Server {start|stop|status|restart}"
exit 1
esac
Any idea why this line doesnt work ? if I remove the
& it seems to start ok, but the child process then holds the parent up.