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

20051114: LDM 6.4.3 curiosity (cont.)



>From: Gilbert Sebenste <address@hidden>
>Organization: NIU
>Keywords: 200511140002.jAE0297s026598 LDM ldmadmin

Hi Gilbert,

re: continuing to scope out why 'ldmadmin watch' doesn't work on weather
>Thanks! Not critical, more of a convenience thing than anything but again, 
>this just started in 6.4.3. Just thought you'd want to know!

I think I found the problem.  /etc/hosts on weather does not define
the localhost like it should.

Consider /etc/hosts on weather3:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       weather3.admin.niu.edu  weather3        localhost.localdomain 
localhost

Compare this with /etc/hosts on weather:

# Do not remove the following line, or various programs
# that require network functionality will fail.
131.156.8.47    weather.admin.niu.edu

Many actions run out of 'ldmadmin' try to determine if the LDM is
running.  Whether or not the LDM is running is determined by the
procedure isRunning in ldmadmin itself:

###############################################################################
# check if the LDM is running.  return 1 if running, 0 if not.
###############################################################################

sub isRunning {
    my($pid, $running, $cmd_line);

    $pid= getPid();

    if ($pid != -1) {
        system("kill -0 $pid > /dev/null 2>&1");
        $running = !$?;
    }

    if (!$running) {
        $cmd_line = "ldmping -i 0";

        if (length($ip_addr)) {
            $cmd_line .= " $ip_addr";
        }

        system("$cmd_line > /dev/null 2>&1");
        $running = !$?;
    }

    return $running;
}


On both weather3 and weather, the first test:

    $pid= getPid();

    if ($pid != -1) {
        system("kill -0 $pid > /dev/null 2>&1");
        $running = !$?;
    }

passes with no error.  The second test, however, fails on weather
and succeeds on weather3:

    if (!$running) {
        $cmd_line = "ldmping -i 0";

        if (length($ip_addr)) {
            $cmd_line .= " $ip_addr";
        }

        system("$cmd_line > /dev/null 2>&1");
        $running = !$?;
    }

'ldmping' is attempting to contact 'localhost' in this code (since no
host is specified).  On weather3, 'localhost' is defined; on weather
it is not.

Solution:

Modify /etc/hosts on weather to match what is on weather3.  After the
mod, you should be able to run 'ldmadmin watch' from both your and the
'mcidas' accounts.

Cheers,

Tom
--
NOTE: All email exchanges with Unidata User Support are recorded in the
Unidata inquiry tracking system and then made publicly available
through the web.  If you do not want to have your interactions made
available in this way, you must let us know in each email you send to us.

>From address@hidden  Mon Nov 14 12:52:27 2005

re: Modify /etc/hosts on weather to match what is on weather3

>I have NO clue how that line got deleted, and that's an important line. 
>Once I did that, voila! All was well and ldmadmin works in my account! 
>Somehow, someway the FC4 upgrade must have taken that one out. Odd.

>And Tom, as always... THANK YOU SO MUCH for your help!!!!!!

*******************************************************************************
Gilbert Sebenste                                                     ********
(My opinions only!)                                                  ******
Staff Meteorologist, Northern Illinois University                      ****
E-mail: address@hidden                                  ***
web: http://weather.admin.niu.edu                                      **
*******************************************************************************