On Sun, 2004-02-29 at 02:09, Gregory Seidman wrote: > On Sat, Feb 28, 2004 at 03:50:17PM -0800, Nano Nano wrote: > } I run a hybrid desktop: gnome-control-center is installed, but not > } metacity. Fluxbox is my WM; but I remove gnome-session as a Session > } Manager so I have No Session Manager. Here is my .xsession: > } > } #!/bin/sh > } ARGS="--hide-menubar --window-with-profile=Default" > } #gnome-control-center > } gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon > --oaf-ior-fd=21 & > } xscreensaver -nosplash & > } kdeinit & > ( sleep 5 > } gbuffy & > } #xmms & > } gnome-terminal $ARGS --geometry=80x25+1+22 & > } gnome-terminal $ARGS --geometry=95x25+582+22 & > } gnome-terminal $ARGS --geometry=80x40+1+418 & > } gnome-terminal $ARGS --geometry=95x40+582+418 & > ) > } exec fluxbox > [...] > } The problem is if gbuffy or gnome-terminal starts before > } gnome-settings-daemon, themes and various gnome-ish things are broken. > } It's a classic race conditions. > } > } How can I serialize the tasks? Remember, none can block. > } gnome-settings-daemon doesn't return. > > Note the two added lines above. This is the simplest way to deal with > that sort of thing. Adjust the length of the sleep to taste. A better > way is to use a spinlock wrapped around lsof or netstat right after the > gnome-settings-daemon call (note that calling it without any arguments > works at least as well): > > #... > gnome-settings-daemon & > GSDPID=$! > while lsof -u$USER | awk 'BEGIN { found = 0; } > ($2 == "'$GSDPID'") && ($8 ~ /orbit-'$USER'/) { found = 1; next } > END { exit found }' > do > sleep 1 > done > sleep 1 > #... > > This will run lsof once a second until gnome-settings-daemon has set up > its unix socket, then sleep one extra second for safety, then proceed. > Note that it uses the pid gnome-settings-daemon started with, so other > instances of the daemon will be ignored.
Thanks... sometimes it pays to not go the ugly hack route. Nicely done. -- [EMAIL PROTECTED] REMEMBER ED CURRY! http://www.iwethey.org/ed_curry Novell's Directory Services is a competitive product to Microsoft's Active Directory in much the same way that the Saturn V is a competitive product to those dinky little model rockets that kids light off down at the playfield. -- Thane Walkup
signature.asc
Description: This is a digitally signed message part