File: mailman3-web.init

package info (click to toggle)
mailman-suite 0%2B20200530-2.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 332 kB
  • sloc: sh: 471; python: 242; makefile: 9
file content (120 lines) | stat: -rw-r--r-- 2,631 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/sh
### BEGIN INIT INFO
# Provides:          mailman3-web
# Required-Start:    $network $local_fs $remote_fs $syslog
# Required-Stop:     $remote_fs
# Should-Start:      postgresql
# Should-Stop:       postgresql
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Mailman3-web uWSGI service
# Description:       Mailman3-web uWSGI service
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME="mailman3-web"
DESC="Mailman3-web uWSGI service"
SCRIPTNAME=/etc/init.d/mailman3-web
DAEMON=/usr/bin/uwsgi_python3
PIDFILE="/run/mailman3-web/${NAME}.pid"
LOGFILE="/var/log/mailman3/web/mailman-web.log"
DAEMON_ARGS="--ini /etc/mailman3/uwsgi.ini --pidfile ${PIDFILE} --daemonize ${LOGFILE}"

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

if [ ! -d /run/mailman3-web ]; then
    mkdir -p /run/mailman3-web
fi

chown www-data:www-data /run/mailman3-web

do_start () {
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON \
        --test >/dev/null|| return 1

    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON \
        -- $DAEMON_ARGS || return 2
}

do_stop () {
    start-stop-daemon --stop --quiet --oknodo --retry=QUIT/30/KILL/5 \
        --pidfile $PIDFILE --exec $DAEMON
}

do_reload () {
    start-stop-daemon --stop --quiet --signal=HUP --pidfile $PIDFILE \
        --exec $DAEMON

    RETVAL="$?"

    # There is no such process, nothing to reload!
    [ "$RETVAL" = 1 ] && RETVAL=3

    return "$RETVAL"
}

do_force_reload() {
    start-stop-daemon --stop --quiet --signal=TERM  --pidfile $PIDFILE \
        --exec $DAEMON

    RETVAL="$?"

    # There is no such process, nothing to reload!
    [ "$RETVAL" = 1 ] && RETVAL=3

    return "$RETVAL"
}

case "$1" in
  start)
    log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    log_end_msg "$?"
    ;;

  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    log_end_msg "$?"
    ;;

  status)
    status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME" && exit 0 || exit $?
    ;;

  reload)
    log_daemon_msg "Reloading $DESC" "$NAME"
    do_reload
    log_end_msg "$?"
    ;;

  force-reload)
    log_daemon_msg "Forced reloading $DESC" "$NAME"
    do_force_reload
    log_end_msg "$RETVAL"
    ;;

  restart)
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
      0)
        do_start
        log_end_msg "$?"
        ;;
      *)
        # Failed to stop
        log_end_msg 1
        ;;
    esac
    ;;

  *)
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
    exit 3
    ;;
esac

exit 0