(Perl:) How to check linux's /proc/pid in BSD

Ion-Mihai Tetcu itetcu at apropo.ro
Fri Jul 23 16:07:53 PDT 2004


Hi,


Could someone please help me with the following code as I don't want it
to use /proc (my perl skils are very low)

    ## Check to see if that process is running
    if (! -d "/proc/$pid") {
        ## Return success if the PID is not running
        printmsg("DEBUG => checkPidFile() returning 0 since the PID specified in the pid file is not running.", 2);
        return(0);
    }
    
    ## Open the PID cmdline file so we can get the process name for the running PID.
    if (! open(PIDFILE, "/proc/$pid/cmdline")) {
        ## Return an error if it exists but we couldn't open it.
        printmsg("DEBUG => checkPidFile() returning 2 because for some reason I wasn't able to open the file: /proc/$pid/cmdline", 2);
        return(2);
    }
    
    ## proc/xxx/cmdline can be split by \0 to get the different parts
    my $pidname = <PIDFILE>;
    $pidname =~ s/\0/ /;
    
    if ($pidname =~ /dspampd/io) {
        printmsg("DEBUG => checkPidFile() returning 3 the process referenced in the pid file [$pidname] is another dspampd process.", 2);
        return(3);
    }


Thanks,

-- 
IOnut
Unregistered ;) FreeBSD "user"



More information about the freebsd-questions mailing list