| @@ -1,66 +1,79 @@ | | | @@ -1,66 +1,79 @@ |
1 | #!@RCD_SCRIPTS_SHELL@ | | 1 | #!@RCD_SCRIPTS_SHELL@ |
2 | # | | 2 | # |
3 | # $NetBSD: qmailsend.sh,v 1.10 2017/06/17 05:58:39 schmonz Exp $ | | 3 | # $NetBSD: qmailsend.sh,v 1.11 2017/08/04 06:35:28 schmonz Exp $ |
4 | # | | 4 | # |
5 | # @PKGNAME@ script to control qmail-send (local and outgoing mail). | | 5 | # @PKGNAME@ script to control qmail-send (local and outgoing mail). |
6 | # | | 6 | # |
7 | | | 7 | |
8 | # PROVIDE: qmailsend mail | | 8 | # PROVIDE: qmailsend mail |
9 | # REQUIRE: LOGIN | | 9 | # REQUIRE: LOGIN |
10 | # KEYWORD: shutdown | | 10 | # KEYWORD: shutdown |
11 | | | 11 | |
12 | name="qmailsend" | | 12 | name="qmailsend" |
13 | | | 13 | |
14 | # User-settable rc.conf variables and their default values: | | 14 | # User-settable rc.conf variables and their default values: |
15 | : ${qmailsend_postenv:="PATH=@PREFIX@/bin:$PATH"} | | 15 | : ${qmailsend_postenv:="PATH=@PREFIX@/bin:$PATH"} |
16 | : ${qmailsend_defaultdelivery:="`@HEAD@ -1 @PKG_SYSCONFDIR@/control/defaultdelivery`"} | | 16 | : ${qmailsend_defaultdelivery:="`@HEAD@ -1 @PKG_SYSCONFDIR@/control/defaultdelivery`"} |
17 | : ${qmailsend_log:="YES"} | | 17 | : ${qmailsend_log:="YES"} |
18 | : ${qmailsend_logcmd:="logger -t nb${name} -p mail.info"} | | 18 | : ${qmailsend_logcmd:="logger -t nb${name} -p mail.info"} |
19 | : ${qmailsend_nologcmd:="@PREFIX@/bin/multilog -*"} | | 19 | : ${qmailsend_nologcmd:="@PREFIX@/bin/multilog -*"} |
20 | | | 20 | |
21 | if [ -f /etc/rc.subr ]; then | | 21 | if [ -f /etc/rc.subr ]; then |
22 | . /etc/rc.subr | | 22 | . /etc/rc.subr |
23 | fi | | 23 | fi |
24 | | | 24 | |
25 | rcvar=${name} | | 25 | rcvar=${name} |
26 | required_files="@PKG_SYSCONFDIR@/control/defaultdelivery" | | 26 | required_files="@PKG_SYSCONFDIR@/control/defaultdelivery" |
27 | required_files="${required_files} @PKG_SYSCONFDIR@/control/me" | | 27 | required_files="${required_files} @PKG_SYSCONFDIR@/control/me" |
28 | command="@PREFIX@/bin/qmail-send" | | 28 | command="@PREFIX@/bin/qmail-send" |
29 | start_precmd="qmailsend_precmd" | | 29 | start_precmd="qmailsend_prestart" |
| | | 30 | start_postcmd="qmailsend_poststart" |
| | | 31 | stop_postcmd="qmailsend_poststop" |
| | | 32 | pidfile="@VARBASE@/run/${name}.pid" |
30 | extra_commands="stat pause cont doqueue reload queue alrm flush hup" | | 33 | extra_commands="stat pause cont doqueue reload queue alrm flush hup" |
31 | stat_cmd="qmailsend_stat" | | 34 | stat_cmd="qmailsend_stat" |
32 | pause_cmd="qmailsend_pause" | | 35 | pause_cmd="qmailsend_pause" |
33 | cont_cmd="qmailsend_cont" | | 36 | cont_cmd="qmailsend_cont" |
34 | doqueue_cmd="qmailsend_doqueue" | | 37 | doqueue_cmd="qmailsend_doqueue" |
35 | queue_cmd="qmailsend_queue" | | 38 | queue_cmd="qmailsend_queue" |
36 | alrm_cmd="qmailsend_doqueue" | | 39 | alrm_cmd="qmailsend_doqueue" |
37 | flush_cmd="qmailsend_doqueue" | | 40 | flush_cmd="qmailsend_doqueue" |
38 | hup_cmd="qmailsend_hup" | | 41 | hup_cmd="qmailsend_hup" |
39 | | | 42 | |
40 | qmailsend_precmd() | | 43 | qmailsend_prestart() |
41 | { | | 44 | { |
42 | # qmail-start(8) starts the various qmail processes, then exits. | | 45 | # qmail-start(8) starts the various qmail processes, then exits. |
43 | # qmail-send(8) is the process we want to signal later. | | 46 | # qmail-send(8) is the process we want to signal later. |
44 | if [ -f /etc/rc.subr ] && ! checkyesno qmailsend_log; then | | 47 | if [ -f /etc/rc.subr ] && ! checkyesno qmailsend_log; then |
45 | qmailsend_logcmd=${qmailsend_nologcmd} | | 48 | qmailsend_logcmd=${qmailsend_nologcmd} |
46 | fi | | 49 | fi |
47 | command="@PREFIX@/bin/pgrphack @SETENV@ - ${qmailsend_postenv} | | 50 | command="@PREFIX@/bin/pgrphack @SETENV@ - ${qmailsend_postenv} |
48 | qmail-start '$qmailsend_defaultdelivery' | | 51 | qmail-start '$qmailsend_defaultdelivery' |
49 | ${qmailsend_logcmd}" | | 52 | ${qmailsend_logcmd}" |
50 | command_args="&" | | 53 | command_args="&" |
51 | rc_flags="" | | 54 | rc_flags="" |
52 | } | | 55 | } |
53 | | | 56 | |
| | | 57 | qmailsend_poststart() |
| | | 58 | { |
| | | 59 | echo $! > ${pidfile} |
| | | 60 | } |
| | | 61 | |
| | | 62 | qmailsend_poststop() |
| | | 63 | { |
| | | 64 | rm -f ${pidfile} |
| | | 65 | } |
| | | 66 | |
54 | qmailsend_stat() | | 67 | qmailsend_stat() |
55 | { | | 68 | { |
56 | run_rc_command status | | 69 | run_rc_command status |
57 | } | | 70 | } |
58 | | | 71 | |
59 | qmailsend_pause() | | 72 | qmailsend_pause() |
60 | { | | 73 | { |
61 | if ! statusmsg=`run_rc_command status`; then | | 74 | if ! statusmsg=`run_rc_command status`; then |
62 | @ECHO@ $statusmsg | | 75 | @ECHO@ $statusmsg |
63 | return 1 | | 76 | return 1 |
64 | fi | | 77 | fi |
65 | @ECHO@ "Pausing ${name}." | | 78 | @ECHO@ "Pausing ${name}." |
66 | kill -STOP $rc_pid | | 79 | kill -STOP $rc_pid |
| @@ -93,16 +106,17 @@ qmailsend_queue() | | | @@ -93,16 +106,17 @@ qmailsend_queue() |
93 | @PREFIX@/bin/qmail-qread | | 106 | @PREFIX@/bin/qmail-qread |
94 | } | | 107 | } |
95 | | | 108 | |
96 | qmailsend_hup() | | 109 | qmailsend_hup() |
97 | { | | 110 | { |
98 | run_rc_command reload | | 111 | run_rc_command reload |
99 | } | | 112 | } |
100 | | | 113 | |
101 | if [ -f /etc/rc.subr ]; then | | 114 | if [ -f /etc/rc.subr ]; then |
102 | load_rc_config $name | | 115 | load_rc_config $name |
103 | run_rc_command "$1" | | 116 | run_rc_command "$1" |
104 | else | | 117 | else |
105 | @ECHO_N@ " ${name}" | | 118 | @ECHO_N@ " ${name}" |
106 | qmailsend_precmd | | 119 | qmailsend_prestart |
107 | eval ${command} ${qmailsend_flags} ${command_args} | | 120 | eval ${command} ${qmailsend_flags} ${command_args} |
| | | 121 | qmailsend_poststart |
108 | fi | | 122 | fi |