summaryrefslogtreecommitdiff
path: root/network/cyrus-imapd/rc.cyrus-imapd
blob: 99cd26b926da9102700fb97d088cde08eeb29650 (plain)
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
#!/bin/sh
# Start/stop/restart the Cyrus IMAP daemon.
# Written by Mario Preksavec <mario@slackware.hr>

cyrus_start() {
  if [ -x /usr/libexec/cyrus/master ]; then
    if [ -f /var/run/cyrus-master.pid ] \
    && kill -0 $(cat /var/run/cyrus-master.pid) 2> /dev/null; then
      echo "Cyrus IMAP daemon already running."
      return
    fi
    echo "Starting Cyrus IMAP daemon:  /usr/libexec/cyrus/master"
    /usr/libexec/cyrus/master -d
  fi
}

cyrus_stop() {
  if [ -f /var/run/cyrus-master.pid ]; then
    echo "Stopping Cyrus IMAP daemon"
    kill $(cat /var/run/cyrus-master.pid) 2> /dev/null \
    && rm -f /var/run/cyrus-master.pid
  else
    echo "Cyrus IMAP daemon already stopped."
  fi
}

cyrus_restart() {
  cyrus_stop
  sleep 1
  cyrus_start
}

case "$1" in
  start)
    cyrus_start
    ;;
  stop)
    cyrus_stop
    ;;
  restart)
    cyrus_restart
    ;;
  *)
    echo "usage $0 start|stop|restart"
esac