SHARE
TWEET

Untitled

mft39anton Oct 12th, 2019 13 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! /bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides:          znc
  4. # Required-Start:    $remote_fs $syslog
  5. # Required-Stop:     $remote_fs $syslog
  6. # Default-Start:     2 3 4 5
  7. # Default-Stop:      0 1 6
  8. # Short-Description: ZNC IRC bouncer
  9. # Description:       ZNC is an IRC bouncer
  10. ### END INIT INFO
  11.  
  12. PATH=/sbin:/usr/sbin:/bin:/usr/bin
  13. DESC="ZNC daemon"
  14. NAME=znc
  15. DAEMON=/usr/bin/$NAME
  16. DATADIR=/var/lib/znc
  17. DAEMON_ARGS="--datadir=$DATADIR"
  18. PIDDIR=/var/run/znc
  19. PIDFILE=$PIDDIR/$NAME.pid
  20. SCRIPTNAME=/etc/init.d/$NAME
  21. USER=znc
  22. GROUP=znc
  23.  
  24. # Exit if the package is not installed
  25. [ -x "$DAEMON" ] || exit 0
  26.  
  27. # Read configuration variable file if it is present
  28. [ -r /etc/default/$NAME ] && . /etc/default/$NAME
  29.  
  30. # Load the VERBOSE setting and other rcS variables
  31. . /lib/init/vars.sh
  32.  
  33. # Define LSB log_* functions.
  34. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
  35. # and status_of_proc is working.
  36. . /lib/lsb/init-functions
  37.  
  38. #
  39. # Function that starts the daemon/service
  40. #
  41. do_start()
  42. {
  43.     # Return
  44.     #   0 if daemon has been started
  45.     #   1 if daemon was already running
  46.     #   2 if daemon could not be started
  47.     if [ ! -d $PIDDIR ]
  48.     then
  49.         mkdir $PIDDIR
  50.     fi
  51.     chown $USER:$GROUP $PIDDIR
  52.     start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test --chuid $USER > /dev/null || return 1
  53.     start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --chuid $USER -- $DAEMON_ARGS > /dev/null || return 2
  54. }
  55.  
  56. #
  57. # Function that stops the daemon/service
  58. #
  59. do_stop()
  60. {
  61.     # Return
  62.     #   0 if daemon has been stopped
  63.     #   1 if daemon was already stopped
  64.     #   2 if daemon could not be stopped
  65.     #   other if a failure occurred
  66.     start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME --chuid $USER
  67.     RETVAL="$?"
  68.     [ "$RETVAL" = 2 ] && return 2
  69.     # Wait for children to finish too if this is a daemon that forks
  70.     # and if the daemon is only ever run from this initscript.
  71.     # If the above conditions are not satisfied then add some other code
  72.     # that waits for the process to drop all resources that could be
  73.     # needed by services started subsequently.  A last resort is to
  74.     # sleep for some time.
  75.     start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON --chuid $USER
  76.     [ "$?" = 2 ] && return 2
  77.     # Many daemons don't delete their pidfiles when they exit.
  78.     rm -f $PIDFILE
  79.     return "$RETVAL"
  80. }
  81.  
  82. #
  83. # Function that sends a SIGHUP to the daemon/service
  84. #
  85. do_reload() {
  86.     start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME --chuid $USER
  87.     return 0
  88. }
  89.  
  90. case "$1" in
  91.   start)
  92.     [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  93.     do_start
  94.     case "$?" in
  95.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  96.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  97.     esac
  98.     ;;
  99.   stop)
  100.     [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
  101.     do_stop
  102.     case "$?" in
  103.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  104.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  105.     esac
  106.     ;;
  107.   status)
  108.     status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
  109.     ;;
  110.   reload)
  111.     log_daemon_msg "Reloading $DESC" "$NAME"
  112.     do_reload
  113.     log_end_msg $?
  114.     ;;
  115.   restart)
  116.     log_daemon_msg "Restarting $DESC" "$NAME"
  117.     do_stop
  118.     case "$?" in
  119.       0|1)
  120.         do_start
  121.         case "$?" in
  122.             0) log_end_msg 0 ;;
  123.             1) log_end_msg 1 ;; # Old process is still running
  124.             *) log_end_msg 1 ;; # Failed to start
  125.         esac
  126.         ;;
  127.       *)
  128.         # Failed to stop
  129.         log_end_msg 1
  130.         ;;
  131.     esac
  132.     ;;
  133.   *)
  134.     echo "Usage: $SCRIPTNAME {status|start|stop|reload|restart}" >&2
  135.     exit 3
  136.     ;;
  137. esac
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top