#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions . /etc/conf.d/mldonkey if [ -z $MLDUSER ] ; then echo "Unable to run MLDonkey. You must set a user in /etc/conf.d/mldonkey ." exit 2 fi if [ -z "$(getent passwd "$MLDUSER")" ]; then # Perhaps we should create the account for the user? echo "You must create the account $MLDUSER in order to run mldonkey." echo "Please create the account manually, and try again." exit 2 fi MLDGROUPID=$(getent passwd "$MLDUSER" |cut -d':' -f4) MLDGROUP=$(getent group $MLDGROUPID |cut -d':' -f1) USERDIR=$(getent passwd $MLDUSER | cut -d: -f6) if [ ! -d $USERDIR ]; then echo "Unable to run MLDonkey. Home directory for ${MLDUSER} does not exist." exit 2 fi PIDDIR="/var/run/mldonkey" PIDFILE="$PIDDIR/mlnet.pid" getPID() { echo $(pgrep -u "$MLDUSER" mlnet 2>/dev/null); } case "$1" in start) stat_busy "Starting MLDonkey" if [ ! -d $PIDDIR ]; then install -d -m755 -o "$MLDUSER" -g "$MLDGROUP" $PIDDIR fi if [ "$(stat -c %U $PIDDIR)" != "$MLDUSER" ]; then chown -R "$MLDUSER:$MLDGROUP" $PIDDIR fi [ -z $PID ] && su $MLDUSER -s /bin/sh -c "/usr/bin/mlnet -pid $PIDDIR $PARAMS -log_to_syslog true &> /tmp/mldonkey.log &" if [ $? -gt 0 ]; then stat_fail else add_daemon mldonkey stat_done fi ;; stop) stat_busy "Stopping MLDonkey" if [ ! -z "$(getPID)" ]; then timeo=30 kill $(getPID) &> /dev/null if [ $? -gt 0 ]; then stat_fail exit 1 fi while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do sleep 1 let timeo=${timeo}-1 done if [ -z "$(getPID)" ]; then rm -f $PIDFILE &>/dev/null rm_daemon mldonkey stat_done else stat_fail exit 1 fi else stat_fail exit 1 fi ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0