#891 rxapid service suddenly not forking on Ubuntu Server 9.10

v4.0.1
closed
Mark Miesfeld
5
2012-08-14
2010-03-05
mdlueck
No

I had to apply a kernel update to a box running Ubuntu Server 9.10, and it would not fully boot after that. I tracked it down to the start of the rxapid service.

I looked inside the script and found that on this version of Ubuntu it starts it via:

start_daemon /opt/ooRexx/bin/rxapi

which seems like it was not forking the process, thus would not arrive at a login prompt on tty1.

We tried various things, but finally arrived at uninstlaling the service via:

update-rc.d -f rxapid remove

and added to file /etc/rc.local

Hack to get ooRexx rxapi started async

/etc/init.d/rxapid start &

which still leaves the script hanging, but at least the box boots completely.

root 969 0.0 0.0 3048 836 ? S 18:48 0:00 /bin/bash /etc/init.d/rxapid start
nobody 971 0.0 0.0 3276 1124 ? Ss 18:48 0:00 /opt/ooRexx/bin/rxapi

It is very odd that start_daemon developed a dislike for forking processes. Suggestions?

Discussion

<< < 1 2 3 > >> (Page 2 of 3)
  • mdlueck
    mdlueck
    2010-03-17

    I went to the support forum and inquired there, and received a prompt reply. Seems with 9.10, Ubuntu made some changes to how services start. Poster seems to think that something ooRexx depends on might not be started yet, and that is why the start script gets stuck at boot-up but runs cleanly with a fully booted system.

    The thread is here:
    http://ubuntuforums.org/showthread.php?p=8978938#post8978938

    Please advise.
    Thanks!

     
  • Mark Miesfeld
    Mark Miesfeld
    2010-03-17

    Michael,

    Try editing the rxapid script after you are booted and put this in the top:

    ! /bin/bash

    The following is LSB information

    BEGIN INIT INFO

    Provides: rxapi

    Required-Start: $local_fs $network $time

    Required-Stop: $local_fs $network $time

    Default-Start: 2 3 4 5

    Default-Stop: 0 1 6

    Short-Description: start and stop rxapi daemon

    Description: rxapid provides the communication service for between all running

    ooRexx scripts

    END INIT INFO

    rxapid.sh Start/Stop the rxapi daemon.

    You just need the LSB stuff, the above has a couple of extra lines of context.

    Not sure, but maybe that Required-Start line will help.

     
  • mdlueck
    mdlueck
    2010-03-17

    I modified it accordingly, no difference.

    Running on a fully up-to-date Lucid daily desktop build.

     
  • Mark Miesfeld
    Mark Miesfeld
    2010-03-17

    You could try commenting out a few things in the script and see if the system boots. I have a low expectation that this will help.

    In the start() function comment out these lines:

    if [ $is_debian_like -eq 0 ]; then
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rxapi
    else
        [ $RETVAL -eq 0 ] && touch /var/lock/rxapi
    fi
    

    In the rhstatus() function comment out the single line:

    status @prefix@/bin/rxapi
    

    If you don't mind playing with it a little, comment out the lines in start(); try it. Comment out only the line in rhstatus(); try it. Comment out both sections; try it.

     
  • mdlueck
    mdlueck
    2010-03-19

    I got the impression from the UbuntuForums post that with this parallel starting of services change, seems like there needs to be a prioritization in the rxapid service... much like I had to on Windows add that Apache relies on RxAPI and that cured the race on Windows - no further RxAPI processes started as a non-service task.

    So what does rxapid on Linux rely on being running?

    I will check into how to prioritize services in Ubuntu 9.10 <

     
  • David Ashley
    David Ashley
    2010-03-19

    The main dependency is networking. The sockets layer must be up for rxapid to start.

     
  • Mark Miesfeld
    Mark Miesfeld
    2010-03-19

    David's right, the only thing really needed is networking. Although, since rxapid does a touch:

    touch var/lock/subsys/rxapi

    it would need a file system. But the LSB updates to rxapid that David made should handle that:

    Required-Start: $local_fs $network $time

    time is probably not needed, but it shouldn't hurt. The only thing is, if you are mounting your root file system over nfs, then you need $remote_fs.

    I doubted that you were using a root file system on nfs, plus, touch should just fail. I don't see why that would hang the script. But, it's why I suggested commenting out the 'touch' lines. Did you try that?

     
  • mdlueck
    mdlueck
    2010-03-19

    I commented out the entire IF block involving the touch commands, IPL, service start script still gets stuck.

    I think I will simply try to attach the script I am running with to this ticket - I see a place to attach things below...

     
  • Mark Miesfeld
    Mark Miesfeld
    2010-03-19

    Michael,

    I'm going to change this to a bug. When I get a chance I'll try to install the OS you are using and see if I can figure out what is wrong. In the mean time, you may want to just go with your work-around. <grin>

     
<< < 1 2 3 > >> (Page 2 of 3)


Anonymous


Cancel   Add attachments