On Tuesday 02 October 2012 11:25:25 Mike Gabriel wrote:
> Hi Helmer,
>
> On Mo 01 Okt 2012 19:22:44 CEST Helmer Teles wrote:
> > P.S: Also, i couldn't get any script working at *-terminate.d
>
> This file handles the execution of the X2Go Server extensions:
> http://code.x2go.org/gitweb?p=x2goserver.git;a=blob;f=x2goserver-extensions/
> bin/x2goserver-run-extensions
>
> In line 36 (regexp in egrep command) you can see that files in the
> extension dirs have to obey to this rule: ,,[0-9]{3}_[[:alnum:]]+''
>
> <123>_<scriptname>
>
> Mike
Hi Mike, hello list.
the problem happens at least in pre-terminate.d & post-terminate.d, nevertheless i've managed to do what i want to do, calling a script instead of the kde desktop startkde session.
This is what i'm doing:
these scripts are running okay and doing what i want to accomplish, and it will be easy for you to understand what they do.
pre-suspend.d/001_suspend-session.sh
#!/bin/bash
/usr/local/bin/fn_cleanpclocal.sh
sleep 2
exit 0
post-suspend.d/002_suspend-session.sh
#!/bin/bash
/usr/local/bin/fn_cleanprinter.sh
sleep 2
exit 0
pre-resume.d/001_resume-session.sh
#!/bin/bash
lock_screen()
{
SESSIONDP=`x2golistdesktops |cut -d : -f 2`
export DISPLAY=:${SESSIONDP}
/usr/lib/kde4/libexec/kscreenlocker --forcelock --showunlock --blank &
}
lock_screen
sleep 10 && /usr/local/bin/fn_getmounts.sh &
exit 0
So, it goes as this. Every-time a user logins i call screenlock to have the user to input his password just to complement the ssh key authentication.
Next i will check if the printer and disk tunnels are mounted and will provide the user with a Drive icon to the mount point and provide a printer to that user. I do this because sometimes a user when resuming a session in another workstation some of the tunnels might not be available or missing like the shared drive, so i have to check this stuff at session starting, ending, suspending and resuming.
What i have found is that at post-terminate.d & pre-terminate.d the scripts don't run. So i have to call a custom desktop instead of KDE that calls start kde and at the end of the script i put there the calls to /usr/local/bin/fn_cleanpclocal.sh & /usr/local/bin/fn_cleanprinter.sh but those scripts are working okay when suspending and resuming session.
I've managed to solve the problem this way, but i think that we have a bug in there.
For anyone interested here goes part of the script to check the tunnels.
#!/bin/bash
GetPRINTER()
{
PTUNEL=`x2golistmounts ${MYSESSION} |grep -i spool | wc -l`
PRINTERNAME="${USER}_Printer"
if [ "$PTUNEL" = "1" ]; then
/usr/sbin/lpadmin -p ${PRINTERNAME} -E -v cups-x2go:/ -u allow:"$USER" -D "Impressora Virtual" -o PageSize=A4
kdialog --passivepopup 'Ligação Com Impressora Local Estabelecida Com Sucesso' 5
fi
}
GetPCLOCAL()
{
STUNEL=`x2golistmounts ${MYSESSION} |grep -i disk | wc -l`
if [ "$STUNEL" = "1" ]; then
LINK=`x2golistmounts ${MYSESSION} |grep -i disk |cut -d '|' -f 2`
rmdir ~/media/rm
rmdir ~/media/cd
rm ~/media
rm ~/mounts.log
mkdir ~/Desktop/PCLOCAL
cat > ~/Desktop/PCLOCAL/.directory << EOF
[Desktop Entry]
Icon=drive-removable-media-usb
Name[es]=
Name[pt]=PCLOCAL
EOF
ln -s $LINK ~/Desktop/PCLOCAL/
kdialog --passivepopup 'Ligação com Drive Local Estabelecida com sucesso' 5
else
rmdir ~/media/rm
rmdir ~/media/cd
rm ~/media
rm ~/mounts.log
rm ~/Desktop/PCLOCAL/$LINK
fi
}
MYSESSION=`x2golistsessions |cut -d '|' -f2`
SESSIONDP=`x2golistdesktops |cut -d : -f 2`
export DISPLAY=:${SESSIONDP}
GetPCLOCAL
GetPRINTER
exit 0
--
Com os melhores cumprimentos,
Helmer Teles
http://hteles.wordpress.com
“Sent from My Linux Operating System”
Please don't send me proprietary file formats, use ISO standard ODF instead (ISO/IEC 26300)