[Lcdproc] LCDd not loading properly

brian turbo@talstar.com
Tue Apr 24 16:50:01 2007


Peter McCurdy wrote:
> It sounds like there's a problem in having the child process signal
> the parent process that it's up and running.  When the original LCDd
> process forks the child to run in the background, it sits in a wait(2)
> system call for the child to either die (so the parent can exit
> abnormally) or send signal SIGUSR1 saying that it started OK (so the
> parent can exit normally).
> 
> What happens if you 'kill -USR1' the parent LCDd process while it's stuck?

   Okay, I just tried that.  Opened two ssh sessions into my MythTV box, and shut down the LCDd service.  In session one, I then ran 
"service LCDd start" and it 'hung' as usual.

   In the second session, I first ran "ps ax | grep LCDd" and saw:

     [root@myth ~]# ps ax | grep LCDd
      8500 pts/2    S+     0:00 /bin/sh /sbin/service LCDd start
      8503 pts/2    S+     0:00 /bin/sh /etc/init.d/LCDd start
      8506 pts/2    S+     0:00 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf
      8507 pts/2    S+     0:00 /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf
      8508 ?        Ss     0:00 /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf
      8510 pts/3    R+     0:00 grep LCDd

   So, then I typed "kill -USR1 8507" in the second session, and in the first session, saw:

     [root@myth ~]# service LCDd start
     Starting up LCDd:                                          [  OK  ]
     [root@myth ~]#

   ...in other words, *that* worked, and the service is running as expected:

     [root@myth ~]# ps ax | grep LCDd
      8508 ?        Ss     0:00 /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf
      8515 pts/3    R+     0:00 grep LCDd

  So, now the question is:  Why isn't the child process sending the SIGUSR1 signal?