Avvio di Dovecot

14 agosto 2022 by Roberto Puzzanghera 0 commenti

Ho modificato lo startup script distribuito da Dovecot e l'ho salvato come /usr/local/bin/dovecotctl:

#!/bin/bash

### BEGIN INIT INFO
# Provides:          dovecot
# Required-Start:    $local_fs $remote_fs $network $syslog $time
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Should-Start:      postgresql mysql slapd winbind
# Should-Stop:       postgresql mysql slapd winbind
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Dovecot init script
# Description:       Init script for dovecot services
### END INIT INFO

# Example /etc/init.d/dovecot script. Change DAEMON if necessary.
# License is public domain.

DAEMON=/usr/local/dovecot/sbin/dovecot

# Uncomment to allow Dovecot daemons to produce core dumps.
#ulimit -c unlimited

test -x $DAEMON || exit 1
set -e

base_dir=`$DAEMON config -h base_dir`
pidfile=$base_dir/master.pid

if test -f $pidfile; then
  running=yes
else
  running=no
fi

case "$1" in
  start)
    echo -n "Starting Dovecot"
    $DAEMON
    echo "."
    ;;
  stop)
    if test $running = yes; then
      echo "Stopping Dovecot"
      kill `cat $pidfile`
      echo "."
    else
      echo "Dovecot is already stopped."
    fi
    ;;
  reload)
    if test $running = yes; then
      echo -n "Reloading Dovecot configuration"
      kill -HUP `cat $pidfile`
      echo "."
    else
      echo "Dovecot isn't running."
    fi
    ;;
  restart|force-reload)
    echo -n "Restarting Dovecot"
    if test $running = yes; then
      kill `cat $pidfile`
      sleep 1
    fi
    $DAEMON
    echo "."
    ;;
  *)
    echo "Usage: dovecotctl {start|stop|reload|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0
wget -O /usr/local/bin/dovecotctl https://notes.sagredo.eu/files/qmail/dovecot/dovecotctl
chmod +x /usr/local/bin/dovecotctl

Avviamo Dovecot e questo è quello che si dovrebbe vedere :

> dovecotctl
Usage: dovecotctl {start|stop|reload|restart|force-reload}

> dovecotctl start
Starting Dovecot.

> ps axfu
root       164  0.0  0.0   4692  2940 ?        Ss   Jul29   0:06 /usr/local/dovecot/sbin/dovecot 
dovecot    167  0.0  0.0   4356  1148 ?        S    Jul29   0:01  \_ dovecot/anvil 
root       168  0.0  0.0   4616  2968 ?        S    Jul29   0:01  \_ dovecot/log 
root       169  0.0  0.0   7888  4796 ?        S    Jul29   0:06  \_ dovecot/config 
dovecot    344  0.0  0.0   6084  3112 ?        S    Jul29   0:04  \_ dovecot/stats 
vpopmail 16052  0.0  0.0   8760  6900 ?        S    17:26   0:00  \_ dovecot/imap-login 
dovecot  16053  0.0  0.0  10820  7744 ?        S    17:26   0:00  \_ dovecot/auth 
dovecot  16054  0.0  0.0  10836  7452 ?        S    17:26   0:00  \_ dovecot/auth -w 
vpopmail 16055  0.0  0.0  44276  9340 ?        S    17:26   0:00  \_ dovecot/imap

Lanciare Dovecot al boot

Per lanciare Dovecot all'avvio del server è sufficiente aggiungere una riga come questa nel file rc.local

/usr/local/bin/dovecotctl start &

In caso, come è molto probabile, ti trovi in un sistema basato su systemd, il file rc.local è salvato in /etc/rc.local e dovrai istruire systemd affinchè esso venga eseguito all'avvio della macchina. Per ricordare come si fa sei invitato a leggere questo commento (grazie a GoofY).

E' importante settare il proprio rc.local perchè da ora in poi tutti i servizi verranno lancoati all'avvio da questo script e non da daemontools.

Dovecot sotto daemontools

Se si vuole far girare Dovecot sotto daemontools leggere le indicazione spoegate in questo commento.

Aggiungi un commento