Slow Shutdown when Network Mgr closes before CIFS unmounted
Sandahl *
sandahlb at gmail.com
Sat Jan 16 00:53:31 UTC 2010
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/xubuntu-devel/attachments/20100115/40d51523/attachment.html>
More information about the xubuntu-devel
mailing list