diff options
Diffstat (limited to 'mail/dkimproxy/files/dkimproxy_in.in')
-rw-r--r-- | mail/dkimproxy/files/dkimproxy_in.in | 72 |
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 |