Hi David,

David Bremner <da...@tethera.net> writes:

> Well, you might be right, but that would mean we didn't need the patch
> made by the previous maintainer. How about logging? As far as I know
> nullmailer-send logs to stdout / stderr.

That's a good point.  nullmailer does not have logging builtin.  That
said, it is straight-forward to make use of the '--no-close' of
start-stop-daemon and process substitution of bash:

,----
| start-stop-daemon --start --quiet --user mail --chuid mail --no-close \
| --pidfile $PIDFILE --make-pidfile --background \
| --oknodo --exec "$DAEMON" > >(logger -p mail.notice -t nullmailer) 2>&1
`----

> Benda Xu <hero...@gentoo.org> writes:
> >
> > # ps ax | grep nullmailer
> > 24301 ?        S      0:00 /usr/sbin/nullmailer-send -s
> >
> > # cat /var/run/nullmailer.pid 
> > 24301
> >
> >
> > I have also tested by sending an email from shell, and it also works.
> > And this message is sent by nullmailer 1:2.1-5.
> >

> Did you also test by sending mail with network disconnected and making
> sure the message is delivered after reconnection?

Yes, it works.  I have unpluged the network on Jan 12 18:18:56 and
pluged it back on 21:00:00.  Here is the mail.log by produced syslog:

,----
| Jan 12 18:17:29 cerium nullmailer: Rescanning queue.
| Jan 12 18:18:03 cerium nullmailer: Trigger pulled.
| Jan 12 18:18:03 cerium nullmailer: Rescanning queue.
| Jan 12 18:18:03 cerium nullmailer: Starting delivery, 1 message(s) in queue.
| Jan 12 18:18:03 cerium nullmailer: Starting delivery: host: d.g.o protocol: 
smtp file: 1515748683.5573
| Jan 12 18:18:03 cerium nullmailer: From: <heroxbd@c.e.a.o> to: <heroxbd@g.c>
| Jan 12 18:18:03 cerium nullmailer: Message-Id: 
<1515748683.166936.5572.nullmailer@c.e.a.o>
| Jan 12 18:18:07 cerium nullmailer: smtp: Succeeded: 250 2.0.0 Ok: queued as 
D1D57335C4C
| Jan 12 18:18:07 cerium nullmailer: Sent file.
| Jan 12 18:18:07 cerium nullmailer: Delivery complete, 0 message(s) remain.
| Jan 12 18:18:56 cerium nullmailer: Trigger pulled.
| Jan 12 18:18:56 cerium nullmailer: Rescanning queue.
| Jan 12 18:18:56 cerium nullmailer: Starting delivery, 1 message(s) in queue.
| Jan 12 18:18:56 cerium nullmailer: Starting delivery: host: d.g.o protocol: 
smtp file: 1515748736.5685
| Jan 12 18:18:56 cerium nullmailer: From: <heroxbd@c.e.a.o> to: <heroxbd@g.c>
| Jan 12 18:18:56 cerium nullmailer: Message-Id: 
<1515748736.925284.5684.nullmailer@c.e.a.o>
| Jan 12 18:18:56 cerium nullmailer: smtp: Failed: Connect failed
| Jan 12 18:18:56 cerium nullmailer: Sending failed: Temporary error in 
gethostbyname
| Jan 12 18:18:56 cerium nullmailer: Delivery complete, 1 message(s) remain.
| Jan 12 18:19:56 cerium nullmailer: Rescanning queue.
| Jan 12 18:19:56 cerium nullmailer: Starting delivery, 1 message(s) in queue.
| Jan 12 18:19:56 cerium nullmailer: Starting delivery: host: d.g.o protocol: 
smtp file: 1515748736.5685
| Jan 12 18:19:56 cerium nullmailer: From: <heroxbd@c.e.a.o> to: <heroxbd@g.c>
| Jan 12 18:19:56 cerium nullmailer: Message-Id: 
<1515748736.925284.5684.nullmailer@c.e.a.o>
| Jan 12 18:19:57 cerium nullmailer: smtp: Failed: Connect failed
| Jan 12 18:19:57 cerium nullmailer: Sending failed: Temporary error in 
gethostbyname
| Jan 12 18:19:57 cerium nullmailer: Delivery complete, 1 message(s) remain.
| [...] 5 more "Failed: Connect failed" messages
| Jan 12 20:25:57 cerium nullmailer: Rescanning queue.
| Jan 12 20:25:57 cerium nullmailer: Starting delivery, 1 message(s) in queue.
| Jan 12 20:25:57 cerium nullmailer: Starting delivery: host: d.g.o protocol: 
smtp file: 1515748736.5685
| Jan 12 20:25:57 cerium nullmailer: From: <heroxbd@c.e.a.o> to: <heroxbd@g.c>
| Jan 12 20:25:57 cerium nullmailer: Message-Id: 
<1515748736.925284.5684.nullmailer@c.e.a.o>
| Jan 12 20:25:57 cerium nullmailer: smtp: Failed: Connect failed
| Jan 12 20:25:57 cerium nullmailer: Sending failed: Temporary error in 
gethostbyname
| Jan 12 20:25:57 cerium nullmailer: Delivery complete, 1 message(s) remain.
| Jan 12 22:33:57 cerium nullmailer: Rescanning queue.
| Jan 12 22:33:57 cerium nullmailer: Starting delivery, 1 message(s) in queue.
| Jan 12 22:33:57 cerium nullmailer: Starting delivery: host: d.g.o protocol: 
smtp file: 1515748736.5685
| Jan 12 22:33:57 cerium nullmailer: From: <heroxbd@c.e.a.o> to: <heroxbd@g.c>
| Jan 12 22:33:57 cerium nullmailer: Message-Id: 
<1515748736.925284.5684.nullmailer@c.e.a.o>
| Jan 12 22:34:03 cerium nullmailer: smtp: Succeeded: 250 2.0.0 Ok: queued as 
9720C335C46
| Jan 12 22:34:03 cerium nullmailer: Sent file.
| Jan 12 22:34:03 cerium nullmailer: Delivery complete, 0 message(s) remain.
`----

Attached is the patch against /etc/init.d/nullmailer of
nullmailer_1.13-1.2.

Cheers,
Benda

--- nullmailer	2014-08-01 07:20:54.000000000 +0900
+++ /etc/init.d/nullmailer	2018-01-16 11:40:48.866029073 +0900
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
 
 ### BEGIN INIT INFO
 # Provides:          nullmailer
@@ -16,7 +16,6 @@
 NAME=nullmailer
 DESC=mail-transfer-agent
 PIDFILE=/var/run/$NAME.pid
-DAEMON_OPTS=-s
 
 test -x $DAEMON || exit 0
 
@@ -27,16 +26,16 @@
 	log_begin_msg "Starting $DESC:" "$NAME"
 	# don't kill trigger if daemon already running
 	if ! pidofproc -p $PIDFILE $DAEMON; then
-	    if [ ! -p /var/spool/nullmailer/trigger ]; then                                                                                                        
-		rm -f /var/spool/nullmailer/trigger                                                                                                            
-		mkfifo /var/spool/nullmailer/trigger                                                                                                           
-	    fi                                                                                                                                                     
+	    if [ ! -p /var/spool/nullmailer/trigger ]; then
+		rm -f /var/spool/nullmailer/trigger
+		mkfifo /var/spool/nullmailer/trigger
+	    fi
 	    chown mail:root /var/spool/nullmailer/trigger
 	    chmod 0622 /var/spool/nullmailer/trigger
 	    # --oknodo in case of race condition on daemon start
-	    start-stop-daemon --start --quiet --user mail --chuid mail \
-				--pidfile $PIDFILE --make-pidfile --background \
-				--oknodo --exec "$DAEMON" -- $DAEMON_OPTS
+	    start-stop-daemon --start --quiet --user mail --chuid mail --no-close \
+			      --pidfile $PIDFILE --make-pidfile --background \
+			      --oknodo --exec "$DAEMON" > >(logger -p mail.notice -t nullmailer) 2>&1
 	    log_end_msg $?
 	else
 	    log_end_msg $? "$NAME already running: $PIDS"

Reply via email to