Ubuntu: YaCy Daemon Script
von Anonymous- SNIPPET_TEXT:
-
- #! /bin/bash
- ### BEGIN INIT INFO
- # Provides: yacy
- # Required-Start: $local_fs, $remote_fs, $network, $named, $time
- # Required-Stop: $local_fs, $remote_fs, $network, $named, $time
- # Should-Start: $syslog
- # Should-Stop: $syslog
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Starts YaCy daemon processes with port
- # Description: Starts YaCy daemon processes with port
- ### END INIT INFO
- set -e
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- BASEPATH=/MYPATH/yacy
- DAEMON=${BASEPATH}/startYACY.sh
- STOPDAEMON=${BASEPATH}/stopYACY.sh
- KILLDAEMON=${BASEPATH}/killYACY.sh
- NAME=yacy
- DESC="yacy daemon"
- YACYPIDDIR=${BASEPATH}
- YACYPID=$YACYPIDDIR/yacy.pid
- DEFAULTSFILE=/etc/default/$NAME
- USER=yacy
- GROUP=yacy
- WAITFORDAEMON=360
- ARGS=""
- NICE=""
- # Let's try to figure our some sane defaults:
- if [ -r /proc/sys/fs/file-max ]; then
- system_max=`cat /proc/sys/fs/file-max`
- if [ "$system_max" -gt "80000" ] ; then
- MAX_FILEDESCRIPTORS=32768
- elif [ "$system_max" -gt "40000" ] ; then
- MAX_FILEDESCRIPTORS=16384
- elif [ "$system_max" -gt "10000" ] ; then
- MAX_FILEDESCRIPTORS=8192
- else
- MAX_FILEDESCRIPTORS=1024
- cat << EOF
- Warning: Your system has very few filedescriptors available in total.
- Maybe you should try raising that by adding 'fs.file-max=100000' to your
- /etc/sysctl.conf file. Feel free to pick any number that you deem appropriate.
- Then run 'sysctl -p'. See /proc/sys/fs/file-max for the current value, and
- file-nr in the same directory for how many of those are used at the moment.
- EOF
- fi
- else
- MAX_FILEDESCRIPTORS=8192
- fi
- test -x $DAEMON || exit 0
- # Include tor defaults if available
- if [ -f $DEFAULTSFILE ] ; then
- . $DEFAULTSFILE
- fi
- wait_for_deaddaemon () {
- pid=$1
- echo -n "${NAME} stopping"
- sleep 1
- if test -n "$pid" ; then
- if kill -0 $pid 2>/dev/null ; then
- echo -n "."
- cnt=0
- while kill -0 $pid 2>/dev/null ; do
- cnt=`expr $cnt + 1`
- if [ $cnt -gt $WAITFORDAEMON ] ; then
- echo " FAILED."
- echo "Killing now ${NAME} (PID ${pid})..."
- sudo -u ${USER} ${KILLDAEMON}
- rm -f ${YACYPID}
- return 1
- fi
- sleep 1
- echo -n "."
- done
- fi
- fi
- echo " DONE"
- rm -f ${YACYPID}
- return 0
- }
- check_yacypiddir () {
- if test ! -d $YACYPIDDIR; then
- echo "There is no $YACYPIDDIR directory. Creating one for you."
- mkdir -m 02700 "$YACYPIDDIR"
- chown ${USER}:${GROUP} "$YACYPIDDIR"
- fi
- if test ! -x $YACYPIDDIR; then
- echo "Cannot access $YACYPIDDIR directory, are you root?" >&2
- exit 1
- fi
- }
- check_already_runnning () {
- pid=`cat $YACYPID 2>/dev/null` || true
- if test -f $YACYPID -a -n "$pid" -a kill -0 $pid 2>/dev/null ; then
- echo "Alread running (there is ${YACYPID} - PID ${pid})."
- exit 1
- fi
- securepid=`fuser ${BASEPATH}/DATA/LOG/yacy00.log 2>/dev/null | awk '{print $1}' 2>/dev/null`
- if test -n "${securepid}"; then
- echo "Alread running (there is PID ${securepid})."
- exit 1
- fi
- }
- case "$1" in
- start)
- if [ "$RUN_DAEMON" != "yes" ]; then
- echo "Not starting $DESC (Disabled in $DEFAULTSFILE)."
- exit 0
- fi
- if [ -n "$MAX_FILEDESCRIPTORS" ]; then
- echo -n "Raising maximum number of filedescriptors (ulimit -n) to $MAX_FILEDESCRIPTORS"
- if ulimit -n "$MAX_FILEDESCRIPTORS" ; then
- echo "."
- else
- echo ": FAILED."
- fi
- fi
- check_yacypiddir
- echo "Starting $DESC: $NAME..."
- check_already_runnning
- if test -n "$NICE" ; then
- nice -n $NICE sudo -u ${USER} $DAEMON $ARGS
- else
- sudo -u ${USER} $DAEMON $ARGS
- fi
- echo "done."
- ;;
- stop)
- echo -n "Stopping $DESC: "
- pid=`cat $YACYPID 2>/dev/null` || true
- securepid=`fuser ${BASEPATH}/DATA/LOG/yacy00.log 2>/dev/null | awk '{print $1}' 2>/dev/null`
- if test -f $YACYPID -a -n "$pid" -a kill -0 $pid 2>/dev/null; then
- sudo -u ${USER} ${STOPDAEMON}
- wait_for_deaddaemon $pid
- elif test -n "${securepid}"; then
- sudo -u ${USER} ${STOPDAEMON}
- wait_for_deaddaemon ${securepid}
- else
- echo "not running (there is no $YACYPID)."
- exit 0
- fi
- ;;
- reload|force-reload)
- $0 restart
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
- exit 1
- ;;
- esac
- exit 0
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN