Slow Shutdown when Network Mgr closes before CIFS unmounted

J. Anthony Limon j at flippo.net
Sat Jan 16 04:46:25 UTC 2010


On Fri, 15 Jan 2010 17:53:31 -0700
"Sandahl *" <sandahlb at gmail.com> wrote:

> Are there any plans to replace Network Manager with Wicd?*  *I have
> always found it much easier to set up networking with Wicd.
> 
> B. Sandahl
> 
> http://wicd.sourceforge.net/
> 
> On Fri, Jan 15, 2010 at 4:44 PM, David Collins
> <david.8.collins at gmail.com>wrote:
> 
> > Hello,
> >
> > I am working on a fairly well-known ongoing problem where you have
> > a slow logoff if connected wirelessly to a Samba share.
> > You get the message 'CIFS VFS: No response ...' and it takes about 2
> > minutes for the laptop to shutdown.
> > Apparently it happens because Network Manager closes down before
> > the CIFS mounts are unmounted.
> >
> > It will probably be some time before this gets fixed at the root
> > cause but there is a good work-around for Gnome.
> > It entails running a process in the Gnome session that waits for the
> > 'save-yourself' event (see below).
> >
> > Is there a similar closing-down event that can be hooked into with
> > an XFCE session ?
> > Would anyone be able to supply the few lines of code required in
> > main() below ?
> > I could then test and, if successful, post the solution back into
> > the Ubuntu forums article below.
> >
> > #!/usr/bin/env python
> >
> > #Author: Seamus Phelan
> > # http://ubuntuforums.org/showthread.php?p=8451352#post8451352
> >
> > #This program runs a custom command/script just before gnome shuts
> > #down.  This is done the same way that gedit does it (listening for
> > #the 'save-yourself' event).  This is different to placing scipts
> > #in /etc/rc#.d/ as the script will be run before gnome exits.
> > #If the custom script/command fails with a non-zero return code, a
> > #popup dialog box will appear offering the chance to cancel logout
> > #
> > #Usage: 1 - change the command in the 'subprocess.call' in
> > #           function 'session_save_yourself' below to be what ever
> > #           you want to run at logout.
> > #       2 - Run this program at every gnome login (add via menu
> > System #           -> Preferences -> Session)
> > #
> > #
> >
> > import sys
> > import subprocess
> > import datetime
> >
> > import gnome
> > import gnome.ui
> > import gtk
> >
> > class Namespace: pass
> > ns = Namespace()
> > ns.dialog = None
> >
> > def main():
> >     prog = gnome.init ("gnome_save_yourself", "1.0",
> > gnome.libgnome_module_info_get(), sys.argv, [])
> >     client = gnome.ui.master_client()
> >     #set up call back for when 'logout'/'Shutdown' button pressed
> >     client.connect("save-yourself", session_save_yourself)
> >     client.connect("shutdown-cancelled", shutdown_cancelled)
> >
> > def session_save_yourself( *args):
> >     #Unmount those CIFS shares!
> >     retcode = subprocess.call("sudo /etc/init.d/umountnfs.sh",
> > shell=True) if retcode != 0:
> >         #command failed
> >         show_error_dialog()
> >     return True
> >
> > def shutdown_cancelled( *args):
> >     if ns.dialog != None:
> >         ns.dialog.destroy()
> >     return True
> >
> > def show_error_dialog():
> >     ns.dialog = gtk.Dialog("There was a problem running your
> > pre-shutdown script",
> >                            None,
> >                            gtk.DIALOG_MODAL |
> > gtk.DIALOG_DESTROY_WITH_PARENT,
> >                            ("There was a problem running your
> > pre-shutdown script - continue logout", gtk.RESPONSE_ACCEPT))
> >     if ns.test_mode == True:
> >         response = ns.dialog.run()
> >         ns.dialog.destroy()
> >     else:
> >         #when in shutdown mode gnome will only allow you to open a
> > window using master_client().save_any_dialog()
> >         #It also adds the 'Cancel logout' button
> >         gnome.ui.master_client().save_any_dialog(ns.dialog)
> >
> > #Find out if we are in test mode???
> > if len(sys.argv) >=2 and sys.argv[1] == "test":
> >     ns.test_mode = True
> > else:
> >     ns.test_mode = False
> >
> > if ns.test_mode == True:
> >     main()
> >     session_save_yourself()
> > else:
> >     main()
> >     gtk.main()
> >
> > Regards,
> > David Collins
> >
> >
> > --
> > xubuntu-devel mailing list
> > xubuntu-devel at lists.ubuntu.com
> > https://lists.ubuntu.com/mailman/listinfo/xubuntu-devel
> >
> >

I proposed that not long ago but was shot down for the following
reasons:

1) No built in VPN support
2) The gui isn't pretty enough

Hopefully WICD fixes these issues (although I like the current GUI) so
we can finally boot network manager for good.

- J




More information about the xubuntu-devel mailing list