Browse Source

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
tags/0.9.0
Mikhail Gusarov 9 years ago
parent
commit
7fcaf66165

+ 0
- 4
centos/sources/logging.conf View File

@@ -1,4 +0,0 @@
logging {
type = "console";
level = "info";
}

+ 0
- 11
centos/sources/rspamd.service View File

@@ -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

+ 0
- 1
centos/sources/tmpfiles.d View File

@@ -1 +0,0 @@
d /var/run/rspamd 0770 rspamd rspamd

+ 0
- 13
centos/sources/workers.conf View File

@@ -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}";
}

+ 0
- 0
debian/rspamd.init View File


+ 0
- 2
debian/rspamd.install View File

@@ -1,2 +0,0 @@
debian/workers.conf etc/rspamd
debian/logging.conf etc/rspamd

+ 3
- 1
debian/rules View File

@@ -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

+ 0
- 132
linux/rspamd_debian.in View File

@@ -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 <vsevolod@highsecure.ru>

# 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

:

+ 2
- 9
rspamd.service View File

@@ -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

+ 2
- 5
rspamd.socket View File

@@ -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

Loading…
Cancel
Save