[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?