Running firefox on multiple machines sharing NFS disk space

From Applied Optics Wiki
Revision as of 10:33, 2 March 2011 by Matt (talk | contribs) (Created page with 'Firefox, at least recent versions, is braindead when it comes to running on multiple machines sharing the same NFS space (as is the case for our network). This is a fault with f…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Firefox, at least recent versions, is braindead when it comes to running on multiple machines sharing the same NFS space (as is the case for our network). This is a fault with firefox and a widely reported bug but the firefox dev team seem determined to do nothing about it. Konqueror and Epiphany handle this situation very well and the fix isn't difficult so it is a mystery to me why such a useful feature has been removed from firefox.

Anyway if you don't want to / can't use Konqueror or Epiphany here is a half way house fix that does pretty much what you want. Save the script below (GPL) and call it netfox. Instead of running firefox run netfox (change what your firefox icons do). Provided you use this instead of firefox directly it will detect firefox running on a remote machine and optionally remote kill it so you can run firefox locally (with all your tabs restored).

To remote kill you'll need to setup ssh keys between your remote machines. I should have finished the script by making it all automatic but I got this far and it serves me well enough for me to stop tinkering with it.

  1. !/bin/sh

HN=`hostname` echo hostname set to $HN if test -e ~/.mozilla/firefox/lock_host ; then

       LM=`cat ~/.mozilla/firefox/lock_host`
       echo Firefox has taken a lock out on the following machine:
       cat ~/.mozilla/firefox/lock_host
       if [ "$LM" = "$HN" ] ; then
               echo Running a repeat firefox
               /usr/bin/firefox
               exit
       else
               #ANS=`kdialog --yesno "Firefox is locked on machine $LM \n Do you wish me to try to kill it?"`
               kdialog --yesno "Firefox is locked on machine $LM \n Do you wish me to try to kill it?"
               #ANS=$?
               #cho "Debug, ANS=$ANS"
               if [ $? = 0 ]; then
               #if test yes = $ANS ; then
                       echo "Trying to kill the remote firefox"
                       #RES=`ssh -o "StrictHostKeyChecking no" $LM "killall -regexp firefox"`
                       echo "No result" > /tmp/.netfoxsshres
                       ssh -o "StrictHostKeyChecking no" $LM "killall -regexp firefox" 2> /tmp/.netfoxsshres
                       RES=`cat /tmp/.netfoxsshres`
                       rm  -f /tmp/.netfoxsshres
                       kdialog --msgbox "Result was $RES, now try again"
                       else
                               exit
                       fi
               exit
               fi
       fi

echo No lock_host detected echo Making lock_host touch ~/.mozilla/firefox/lock_host echo $HN >> ~/.mozilla/firefox/lock_host date >> ~/.mozilla/firefox/lock_host.log echo $HN >> ~/.mozilla/firefox/lock_host.log

  1. uname -n > ~/.mozilla/firefox/lock_host

echo Running firefox /usr/bin/firefox $1 $2 $3 $4 $5 echo Removing lock_host rm -f ~/.mozilla/firefox/lock_host date >> ~/.mozilla/firefox/lock_host.log