File: init

package info (click to toggle)
opensmtpd 7.8.0p0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,208 kB
  • sloc: ansic: 54,930; sh: 5,497; yacc: 3,162; makefile: 436; awk: 339
file content (128 lines) | stat: -rw-r--r-- 2,746 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
121
122
123
124
125
126
127
128
#!/bin/sh
# /etc/init.d/opensmtpd
#
# Written by Daniel Walrond <debian@djw.org.uk>
#        and Ryan Kavanagh <rak@debian.org>

### BEGIN INIT INFO
# Provides:          opensmtpd mail-transport-agent
# Required-Start:    $local_fs $remote_fs $syslog $network
# Required-Stop:     $local_fs $remote_fs $syslog $network
# Should-Start:      postgresql mysql dovecot
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: opensmtpd Mail Transport Agent
# Description:       OpenSMTPD
### END INIT INFO

# Do not "set -e"; /lib/lsb/init-functions included below may fail if "set -e"
# is in effect and echoing status messages to the console fails.
set -u

DEFAULT=/etc/default/opensmtpd

DAEMON="/usr/sbin/smtpd"
CONFIG="/etc/smtpd.conf"
PIDFILE="/run/smtpd.pid"
CONTROL="/usr/sbin/smtpctl"
DESC="opensmtpd"
test -f "${DEFAULT}" && . "${DEFAULT}"

test -x "${DAEMON}" || exit 0

. /lib/lsb/init-functions

smtpd_start()
{
  if start-stop-daemon \
      --start \
      --pidfile "${PIDFILE}" \
      --exec "${DAEMON}" \
      -- -f "${CONFIG}"; then
    log_progress_msg "opensmtpd"
    return 0
  else
    log_progress_msg "opensmtpd"
    return 1
  fi
}

smtpd_stop()
{
  if start-stop-daemon --stop --pidfile "${PIDFILE}" -- -f "${CONFIG}"; then
    log_progress_msg "opensmtpd"
    return 0
  else
    log_progress_msg "opensmtpd"
    return 1
  fi
}

smtpd_config_check()
{
# ${DAEMON} -n checks the config file's validity
if "${DAEMON}" -f "${CONFIG}" -n >/dev/null 2>&1; then
  return 0
else
  log_end_msg 1
  "${DAEMON}" -f "${CONFIG}" -n
  return 1
fi
}

case "$1" in
start)
  log_daemon_msg "Starting MTA"
  # Although smtpd checks the config automatically on startup,
  # check it manually ourselves so that error messages are
  # printed after our "failed!" instead of between it and
  # "Starting MTA"
  if smtpd_config_check; then
    smtpd_start
    log_end_msg $?
  fi
  ;;
stop)
  log_daemon_msg "Stopping MTA"
  smtpd_stop
  log_end_msg $?
  ;;
restart)
  log_daemon_msg "Stopping MTA for restart"
  # If the check fails, the log_end_msg in smtpd_config_check
  # will output "failed!" for us.
  if smtpd_config_check; then
    smtpd_stop
    log_end_msg $?
    log_daemon_msg "Restarting MTA"
    smtpd_start
    log_end_msg $?
  fi
  ;;
force-reload)
  log_daemon_msg "Stopping MTA for reload"
  smtpd_stop
  log_end_msg $?
  log_daemon_msg "Restarting MTA"
  smtpd_start
  log_end_msg $?
  ;;
check)
  log_daemon_msg "Checking MTA configuration"
  if smtpd_config_check; then
    log_progress_msg "success"
    log_end_msg $?
  fi
  ;;
status)
  status_of_proc "${DAEMON}" "MTA ${DESC}"
  ;;
*)
  echo "Usage: $0 {start|stop|restart|force-reload|status|check}"
  exit 1
  ;;
esac

exit 0

# vim:set sw=2: