Line 0
Link Here
|
|
|
1 |
#!/bin/sh |
2 |
|
3 |
# PROVIDE: qmail mail |
4 |
# REQUIRE: netif |
5 |
# BEFORE: LOGIN |
6 |
# |
7 |
#writen by Zane C. Bowers <vvelox@vvelox.net> |
8 |
|
9 |
. /etc/rc.subr |
10 |
|
11 |
name="qmail" |
12 |
rcvars=`set_rcvar` |
13 |
start_cmd="qmail_start" |
14 |
stop_cmd="qmail_stop" |
15 |
|
16 |
load_rc_config $name |
17 |
|
18 |
|
19 |
# |
20 |
# Add the following lines to /etc/rc.conf to enable qmail: |
21 |
# qmail_enable (bool): Turn on QMail. |
22 |
# Default: NO |
23 |
# |
24 |
# qmail_checkpw (str): Tell QMail what chekpassword program to use. |
25 |
# Default: /usr/local/bin/checkpassword |
26 |
# |
27 |
# qmail_checkpwsuccess (str): Tell the server what to run if checkpassword works. |
28 |
# Default: /bin/true |
29 |
# |
30 |
# qmail_server (bool): Wether the SMTP server should be started. |
31 |
# Default: YES |
32 |
# |
33 |
# qmail_server_ip (str): The IP to listen on. 0 means all. |
34 |
# Default: 0 |
35 |
# |
36 |
# qmail_server_port (str): The port to listen on. May be numeric or from /etc/services |
37 |
# Default: smtp |
38 |
# |
39 |
# qmail_tcpserver_args (str): Extra args to be passed to tcpserver. |
40 |
# |
41 |
# qmail_defaultdelivery (str): Default delivery path. |
42 |
# Default: ./Maildir |
43 |
# qmail_logger (str): The logger to use. |
44 |
# Default: splogger qmail |
45 |
# qmail_server_logger (str): The logger to use for the SMTP server. |
46 |
# Default: /var/qmail/bin/splogger smtpd |
47 |
|
48 |
[ -z "$qmail_enable" ] && qmail_enable="NO" |
49 |
[ -z "$qmail_checkpw" ] && qmail_checkpw="/usr/local/bin/checkpassword" |
50 |
[ -z "$qmail_checkpwsuccess" ] && qmail_checkpw="/bin/true" |
51 |
[ -z "$qmail_server" ] && qmail_server="YES" |
52 |
[ -z "$qmail_server_ip" ] && qmail_server_ip="0" |
53 |
[ -z "$qmail_server_port" ] && qmail_server_port="smtp" |
54 |
[ -z "$qmail_defaultdelivery" ] && qmail_defaultdelivery="./Maildir" |
55 |
[ -z "$qmail_logger" ] && qmail_defaultdelivery="splogger qmail" |
56 |
[ -z "$qmail_server_logger" ] && qmail_server_logger="/var/qmail/bin/splogger smtpd" |
57 |
|
58 |
qmail_start(){ |
59 |
env - PATH="/var/qmail/bin:$PATH" \ |
60 |
qmail-start $qmail_defaultdelivery $qmail_server_logger & |
61 |
|
62 |
if checkyesno qmail_server; then |
63 |
qmaildUID=`id qmaild | cut -d\ -f 1 | cut -d= -f 2 | cut -d\( -f 1` |
64 |
qnofilesGID=`pw group show qnofiles | cut -d: -f 3` |
65 |
|
66 |
env - PATH="/var/qmail/bin:$PATH" /usr/local/bin/tcpserver $qmail_tcpserver_args -u \ |
67 |
$qmaildUID -g $qnofilesGID $qmail_server_ip $qmail_server_port \ |
68 |
/var/qmail/bin/qmail-smtpd $qmail_checkpw -- /bin/true 2>&1 | $qmail_server_logger & |
69 |
fi |
70 |
|
71 |
} |
72 |
|
73 |
qmail_stop(){ |
74 |
killall -9 qmail-send > /dev/null |
75 |
|
76 |
#tcpserverPID=`ps aux | grep tcpserver | grep ^qmaild | cut -d\ -f 4` |
77 |
tcpserverPID=`ps -aw -o pid,user,command | grep tcpserver | grep qmail-smtpd | sed 's/^ *//' | cut -f 1 -d\ ` |
78 |
[ $tcpserverPID ] && kill -9 $tcpserverPID |
79 |
#kill -9 $tcpserverPID |
80 |
} |
81 |
|
82 |
|
83 |
run_rc_command "$1" |