[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

gnome-panel + mozilla lauch problem


I'm running pure rawhide (from the point it became frozen) at a local
high school's K12LTSP lab.  The largest problem that I see in since Red
Hat 7.x and the current beta is unexperienced user behavior somehow
breaking Mozilla startup.

What happens quite often is the new users click on the Mozilla launcher
in the gnome-panel, and it doesn't come up immediately so they click it
several times rapidly.  When that happens, the "Select User Profile"
window pops up along with the mozilla browser window.  You can reproduce
this behavior by rapidly clicking the mozilla launcher 4 times.

I don't know what they are doing, but somehow after a few classes have
used the LTSP lab, some user accounts have somehow managed to break
Mozilla startup.  When you launch Mozilla, it pop-ups up the "Select
User Profile" window every time, and the "default" profile is broken. 
Most students give up at this point and say the computer is broken. =(

Ultimately Mozilla's behavior should one day be fixed, but until then I
use this wrapper from the /usr/bin/mozilla script to kludge around this
launch problem.

Is there anything I can do to gnome-panel's configuration instead of
this wrapper workaround?

Warren Togami
warren togami com

 * Simple program that uses time stamps to prevent multiple instances of
 * same program from being launched.  Usage is as follows:
 * launcher lock.file delay exec args
 * as in:
 * launcher ~/.mozlock 10 mozilla http://www.etrade.com
 * When used as the shortcut to launch mozilla this will prevent anyone
 * being able to launch the program a second time without a 10 second
 * Note that the file isn't actually locked by modification times are
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>

int main(int argc, char *argv[]) {

  FILE *fp;
  int delay, ret;
  struct timeval tv;
  struct stat st;

  /* check for command line arguments */
  if (argc < 4) {
    fprintf(stderr, "Proper usage is %s file delay exec args...\n",

  delay = atoi(argv[2]);

  /* attempt to stat the lock file */
  if ((ret = stat(argv[1], &st))) {
    if (ret == -1) {
      /* lock file does not exist, attempt to create it */
      if ((fp = fopen(argv[1], "a")) == NULL) {
        perror("Unable to create lock file");
      /* no need to stamp, lock file just created */
      execvp(argv[3], &argv[3]);
    } else {
      perror("Unable to stat");

  /* check if lock file modify time old enough to launch, update time if
so */
  if (time(NULL) - st.st_mtime > delay) {
    if (utimes(argv[1], NULL)) {
      perror("Unable to update lock file");
    if (fork() == 0) execvp(argv[3], &argv[3]);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]