From 1329b25e685760f35ff16cda29fa088d81bc282e Mon Sep 17 00:00:00 2001 From: Mikhail Gusarov Date: Sat, 7 Mar 2015 09:53:04 +0000 Subject: [PATCH] Unify systemd support - Move it from debian/ and centos/ - Ensure Debian package installs .service/.socket - Enable socket-activated service - Clean up redundant CentOS config files --- centos/sources/logging.conf | 4 -- centos/sources/rspamd.service | 11 --- centos/sources/tmpfiles.d | 1 - centos/sources/workers.conf | 13 ---- debian/rspamd.init | 0 debian/rspamd.install | 2 - debian/rules | 4 +- linux/rspamd_debian.in | 132 ---------------------------------- rspamd.service | 11 +-- rspamd.socket | 7 +- 10 files changed, 7 insertions(+), 178 deletions(-) delete mode 100644 centos/sources/logging.conf delete mode 100644 centos/sources/rspamd.service delete mode 100644 centos/sources/tmpfiles.d delete mode 100644 centos/sources/workers.conf mode change 100755 => 100644 debian/rspamd.init delete mode 100644 debian/rspamd.install delete mode 100755 linux/rspamd_debian.in diff --git a/centos/sources/logging.conf b/centos/sources/logging.conf deleted file mode 100644 index 33234fde1..000000000 --- a/centos/sources/logging.conf +++ /dev/null @@ -1,4 +0,0 @@ -logging { - type = "console"; - level = "info"; -} diff --git a/centos/sources/rspamd.service b/centos/sources/rspamd.service deleted file mode 100644 index 64daa7967..000000000 --- a/centos/sources/rspamd.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=rapid spam filtering system -After=syslog.target network.target remote-fs.target nss-lookup.target - -[Service] -Type=simple -PIDFile=/var/run/rspamd/rspamd.pid -ExecStartPre=/usr/bin/rspamd -u rspamd -g rspamd -t -ExecStart=/usr/bin/rspamd -f -c /etc/rspamd/rspamd.conf -u rspamd -g rspamd -ExecStop=/bin/kill -s QUIT $MAINPID -WantedBy=multi-user.target diff --git a/centos/sources/tmpfiles.d b/centos/sources/tmpfiles.d deleted file mode 100644 index 42bc936f9..000000000 --- a/centos/sources/tmpfiles.d +++ /dev/null @@ -1 +0,0 @@ -d /var/run/rspamd 0770 rspamd rspamd diff --git a/centos/sources/workers.conf b/centos/sources/workers.conf deleted file mode 100644 index aa3c43829..000000000 --- a/centos/sources/workers.conf +++ /dev/null @@ -1,13 +0,0 @@ -worker { - type = "normal"; - bind_socket = "systemd:0"; - mime = true; -} -worker { - type = "controller"; - bind_socket = "systemd:1"; - count = 1; - password = "q1"; - secure_ip = "127.0.0.1"; - static_dir = "${WWWDIR}"; -} \ No newline at end of file diff --git a/debian/rspamd.init b/debian/rspamd.init old mode 100755 new mode 100644 diff --git a/debian/rspamd.install b/debian/rspamd.install deleted file mode 100644 index f02b35d19..000000000 --- a/debian/rspamd.install +++ /dev/null @@ -1,2 +0,0 @@ -debian/workers.conf etc/rspamd -debian/logging.conf etc/rspamd diff --git a/debian/rules b/debian/rules index fbb555cb3..9eb1014f1 100755 --- a/debian/rules +++ b/debian/rules @@ -16,11 +16,13 @@ override_dh_auto_configure: -DEXAMPLESDIR=/usr/share/doc/rspamd/examples \ -DLIBDIR=/usr/lib \ -DINCLUDEDIR=/usr/include \ + -DSYSTEMDDIR=/lib/systemd/system \ -DNO_SHARED=ON \ -DDEBIAN_BUILD=1 \ -DINSTALL_EXAMPLES=ON \ -DFORCE_GMIME24=ON \ - -DENABLE_HIREDIS=ON + -DENABLE_HIREDIS=ON \ + -DWANT_SYSTEMD_UNITS=ON override_dh_auto_clean: dh_auto_clean diff --git a/linux/rspamd_debian.in b/linux/rspamd_debian.in deleted file mode 100755 index 5dec68923..000000000 --- a/linux/rspamd_debian.in +++ /dev/null @@ -1,132 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: rspamd -# Required-Start: $syslog -# Required-Stop: $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Rspamd spam filtering system -# Description: Rspamd is fast and modular spam filtering system written in C -### END INIT INFO - -# Author: Vsevolod Stakhov - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="Rspamd" -NAME=rspamd -DAEMON=/usr/bin/$NAME -DAEMON_ARGS="-c /etc/rspamd.xml" -PIDFILE=/var/run/rspamd/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME - -# Exit if the package is not installed -[ -x "$DAEMON" ] || exit 0 - -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. -. /lib/lsb/init-functions - -# -# Function that starts the daemon/service -# -do_start() -{ - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - 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 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Wait for children to finish too if this is a daemon that forks - # and if the daemon is only ever run from this initscript. - # If the above conditions are not satisfied then add some other code - # that waits for the process to drop all resources that could be - # needed by services started subsequently. A last resort is to - # sleep for some time. - start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON - [ "$?" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - -# -# Function that sends a SIGHUP to the daemon/service -# -do_reload() { - start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME - return 0 -} - -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - status) - status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - reload|force-reload) - log_daemon_msg "Reloading $DESC" "$NAME" - do_reload - log_end_msg $? - ;; - restart) - log_daemon_msg "Restarting $DESC" "$NAME" - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 - exit 3 - ;; -esac - -: diff --git a/rspamd.service b/rspamd.service index ff9655b93..1cbc4f232 100644 --- a/rspamd.service +++ b/rspamd.service @@ -1,14 +1,7 @@ [Unit] Description=rapid spam filtering system +After=nss-lookup.target [Service] -Type=simple -# Replace Pre/Post with RuntimeDirectory once it is available -PermissionsStartOnly=true -ExecStartPre=/bin/mkdir -m700 -p /run/rspamd -ExecStartPre=/bin/chown _rspamd:_rspamd /run/rspamd -ExecStart=/usr/bin/rspamd -f -c /etc/rspamd/rspamd.conf -ExecReload=/bin/kill -HUP $MAINPID -ExecStopPost=/bin/rm -r /run/rspamd -WorkingDirectory=/var/lib/rspamd +ExecStart=/usr/bin/rspamd -c /etc/rspamd/rspamd.conf -f User=_rspamd diff --git a/rspamd.socket b/rspamd.socket index e326dddcc..043d37c55 100644 --- a/rspamd.socket +++ b/rspamd.socket @@ -3,9 +3,6 @@ Description=rapid spam filtering system [Socket] ListenStream=11333 -ListenStream=127.0.0.1:11334 -ListenStream=127.0.0.1:11336 -FreeBind=true +ListenStream=[::1]:11334 -[Install] -WantedBy=sockets.target +BindIPv6Only=both -- 2.39.5