summaryrefslogtreecommitdiff
path: root/network/cyrus-imapd/rc.cyrus-imapd
diff options
context:
space:
mode:
Diffstat (limited to 'network/cyrus-imapd/rc.cyrus-imapd')
-rw-r--r--network/cyrus-imapd/rc.cyrus-imapd43
1 files changed, 43 insertions, 0 deletions
diff --git a/network/cyrus-imapd/rc.cyrus-imapd b/network/cyrus-imapd/rc.cyrus-imapd
new file mode 100644
index 0000000000..c148183bbf
--- /dev/null
+++ b/network/cyrus-imapd/rc.cyrus-imapd
@@ -0,0 +1,43 @@
+#!/bin/sh
+# Start/stop/restart the Cyrus IMAP daemon.
+# Written by mario <mario@slackverse.org>.
+
+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