Re: killproc

From: Edward J. Shornock (debian-ml_at_crazeecanuck.homelinux.net)
Date: 11/30/05

  • Next message: Edward J. Shornock: "Re: how to config tha proftpd with TLS"
    Date: Wed, 30 Nov 2005 07:05:54 -0500
    To: debian-user@lists.debian.org
    
    
    

    On Wed, Nov 30, 2005 at 10:00:34AM +0000, John Talbut wrote:
    > Tim Ruehsen wrote:
    > >>I have an external programme that is calling for the function killproc.
    > >> This is apparently not available in Debian Sarge.

    If it's a shell script, you could change it to include
    /lib/lsb/init-functions.

    > >>
    > >>What is the policy? What is the story? What should be used instead?
    > >
    > >
    > >If you are using killproc for sending signals to processes by name
    > >(instead of by processid) give killall a try. It belongs to the packet
    > >'psmisc'.
    > >
    > >Tim
    > >
    > Yes, thanks. pkill also seems to be a possibility. And I would like to
    > know more. Debian does not seem to give any explanation as to why it
    > does not use killproc. Do they suggest an "official" alternative?

    The function "killproc" *is* in the file /lib/lsb/init-functions, even in Sarge:

    killproc () {
        local pidfile sig status
        set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
        pidfile=

        for i in $*; do
            case $i in
                -p) pidfile=$2; shift 2;;
                --) shift; break;;
            esac
        done

        if [ ! $pidfile ]; then
            pidfile=/var/run/$(basename "$1").pid
        fi

        if [ $2 ]; then
            sig=$(echo $2 | sed -e 's/^-\(.*\)/\1/')
            sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/')
            /sbin/start-stop-daemon --stop --pidfile "$pidfile" --signal $sig --quiet
            status="$?"
            [ "$status" = 1 ] && return 3 # program is not running
            return 0
        else
            /sbin/start-stop-daemon --stop --pidfile "$pidfile" --retry 5 --quiet --oknodo
        fi
    }

    Debian unstable uses it, at least:
    $ grep -R killproc /etc/init.d/
    /etc/init.d/autofs: killproc $DAEMON -USR2 >& /dev/null
    /etc/init.d/clamav-freshclam: killproc -p $PIDFILE $DAEMON
    /etc/init.d/clamav-freshclam: killproc -p $PIDFILE $DAEMON 1
    /etc/init.d/clamav-daemon: killproc -p $THEPIDFILE
    /etc/init.d/clamav-daemon: killproc -p $SUPERVISORPIDFILE
    /etc/init.d/clamav-daemon: killproc -p $THEPIDFILE $DAEMON USR2
    /etc/init.d/clamav-daemon: killproc -p $THEPIDFILE $DAEMON 1

    
    

    -- 
    To UNSUBSCRIBE, email to debian-user-REQUEST@lists.debian.org 
    with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
    


  • Next message: Edward J. Shornock: "Re: how to config tha proftpd with TLS"