summaryrefslogtreecommitdiff
path: root/mail/dkimproxy/files/dkimproxy_in.in
diff options
context:
space:
mode:
Diffstat (limited to 'mail/dkimproxy/files/dkimproxy_in.in')
-rw-r--r--mail/dkimproxy/files/dkimproxy_in.in72
1 files changed, 19 insertions, 53 deletions
diff --git a/mail/dkimproxy/files/dkimproxy_in.in b/mail/dkimproxy/files/dkimproxy_in.in
index f1abd7774ec1..4d78fd1f7642 100644
--- a/mail/dkimproxy/files/dkimproxy_in.in
+++ b/mail/dkimproxy/files/dkimproxy_in.in
@@ -19,65 +19,31 @@ name=dkimproxy_in
rcvar=`set_rcvar`
# set defaults
-
: ${dkimproxy_in_enable="NO"}
-: ${dkimproxy_in_flags="--conf_file=/usr/local/etc/dkimproxy_in.conf"}
-: ${dkimproxy_in_pidfile="/var/run/dkimproxy_in.pid"}
-: ${dkimproxy_in_user="dkimproxy"}
-
-start_cmd="dkimproxy_in_start"
-stop_cmd="dkimproxy_in_stop"
-
-dkimproxy_in_start()
-{
- if [ -f ${dkimproxy_in_pidfile} ]; then
- echo "${name} already running?"
- exit 1
- fi
- if pw user show "${dkimproxy_in_user}" > /dev/null 2>&1; then else
- echo "dkimproxy_in_user: ${dkimproxy_in_user} not found"
- exit 1
- fi
- echo "Starting ${name}"
- logger -t ${name} "Starting ${name}"
- touch ${dkimproxy_in_pidfile}
- chown ${dkimproxy_in_user} ${dkimproxy_in_pidfile}
- tmpfile=`mktemp /tmp/${name}.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
- su -m ${dkimproxy_in_user} -c "daemon -c -p ${dkimproxy_in_pidfile} \
- %%PREFIX%%/bin/dkimproxy.in ${dkimproxy_in_flags}" \
- > /dev/null 2> ${tmpfile}
- # wait until dkimproxy start.
- while true
- do
- filesize=`ls -l ${tmpfile}|awk '{print $5}'`
- if [ ${filesize} -gt 0 ]; then
- break
- fi
- done
- logger -t ${name} "`cat ${tmpfile}`"
- err=`grep Error ${tmpfile}`
- if [ "${err}" ]; then
- echo "Failed to start ${name}."
- echo "${err}"
- rm -f ${dkimproxy_in_pidfile}
+command_interpreter=%%PERL%%
+command=%%PREFIX%%/bin/dkimproxy.in
+required_files=%%PREFIX%%/etc/${name}.conf
+dkimproxy_in_user=%%DKIMPROXYUSER%%
+command_args="--conf_file=${required_files} --user=${dkimproxy_in_user} --daemonize"
+
+start_postcmd=start_postcmd
+stop_postcmd=stop_postcmd
+
+# dkimproxy_in/out return 0 even if startup failed
+start_postcmd(){
+ pid=$( check_process ${command} ${command_interpreter} )
+ if [ -n "${pid}" ]; then
+ echo "Starting ${name} done."
+ logger -t ${name} "Starting ${name}"
else
- # To prevent DoS attack by dkimproxy_in_user.
- chown root:wheel ${dkimproxy_in_pidfile}
+ echo "Starting ${name} failed."
+ logger -t ${name} "Starting ${name} failed"
fi
- rm -f ${tmpfile}
}
-dkimproxy_in_stop()
-{
- if [ ! -f ${dkimproxy_in_pidfile} ]; then
- echo "${name} not running?"
- exit 1
- fi
- echo "Stopping ${name}"
- logger -t ${name} "Stopping ${name}"
- kill `cat ${dkimproxy_in_pidfile}`
- rm -f ${dkimproxy_in_pidfile}
+stop_postcmd(){
+ logger -t ${name} "Stopped ${name}"
}
load_rc_config $name