security/amavisd-new startup script

Kövesdán Gábor gabor.kovesdan at t-hosting.hu
Sun Jun 4 14:05:41 PDT 2006


Paul Murphy wrote:
> Kövesdán Gábor wrote:
>> Paul Murphy wrote:
>>>  I need to keep the amavisd-new pid file in a location other than 
>>> the default (/var/amavis/amavisd.pid), so I have rewritten the 
>>> amavis rc script to include a knob for 'pidfile'. Please consider 
>>> the attached file for the amavisd-new port.
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> #!/bin/sh
>>> #
>>> # $FreeBSD: ports/security/amavisd-new/files/amavisd.sh.in,v 1.3 
>>> 2006/02/20 20:47:36 dougb Exp $
>>> #
>>>
>>> # PROVIDE: amavisd
>>> # REQUIRE: LOGIN
>>> # BEFORE: mail
>>> # KEYWORD: shutdown
>>>
>>> #
>>> # Add the following lines to /etc/rc.conf to enable amavisd:
>>> #
>>> #amavisd_enable="YES"
>>> #
>>>
>>> . /etc/rc.subr
>>>
>>> name=amavisd
>>> rcvar=`set_rcvar`
>>>
>>> load_rc_config $name
>>>
>>> # Set defaults
>>> : ${amavisd_enable:="NO"}
>>>
>>> pidfile=${amavisd_pid:-"/var/amavis/amavisd.pid"}
>>> command=/usr/local/sbin/amavisd > /dev/null 2>&1
>>> required_files=/usr/local/etc/amavisd.conf
>>>
>>> stop_postcmd=stop_postcmd
>>>
>>> stop_postcmd()
>>> {
>>>   rm -f $pidfile
>>> }
>>>
>>> run_rc_command "$1"
>>>   
>> I'd found this "new feature" a good idea first, but now, after a 
>> deeper look, I realized that we can't set the pid file with a 
>> command-line option, just in the config file. Thus, if we wanted to 
>> use an alternate location for a pid file, we would have to change it 
>> in two places: in amavisd.conf and in rc.conf. Accordingly, I think 
>> such modification in the rc script might deceive people, so I'd 
>> prefer keeping it as is. Anyway, I don't think that location does 
>> have to be changed in the average case, it might be a special 
>> requirement of you. Opinions from others are appreciated!
>>
>
>  Yes, I thought about that too. I wonder if
>
>     command_args="-p ${pidfile} > /dev/null 2>&1"
>
> would work?
>
>  However I realize that my request is a special case and I should look 
> after it myself.
>
>  Thanks for looking into it though (and thanks to Doug Barton for some 
> hints).
>
>  Attached is my final result, for anyone else who is interested.
> ------------------------------------------------------------------------
>
> #!/bin/sh
> #
>
> # PROVIDE: amavisd
> # REQUIRE: LOGIN
> # BEFORE: mail
> # KEYWORD: shutdown
>
> #
> # Add the following lines to /etc/rc.conf to enable amavisd:
> #
> #amavisd_enable="YES"
> #
>
> . /etc/rc.subr
>
> name=amavisd
> rcvar=${name}_enable
>
> command=/usr/local/sbin/amavisd
>
> required_files=/usr/local/etc/amavisd.conf
>
> load_rc_config $name
>
> # Set defaults
> : ${amavisd_enable="NO"}
> pidfile=${amavisd_pid-"/var/amavis/amavisd.pid"}
> command_args="> -p ${pidfile} /dev/null 2>&1"
>
> stop_postcmd=${name}_poststop
>
> amavisd_poststop()
> {
>   rm -f $pidfile
> }
>
> run_rc_command "$1"
>   
> ------------------------------------------------------------------------

Where did you see that -p option? I got these options:

[root at server /usr/ports]# amavisd --help
amavisd-new-2.4.1 (20060508): Unknown argument.  Usage:
  /usr/local/sbin/amavisd [-u user] [-g group] [-c config-file] ( 
[start] | stop | reload | debug | debug-sa | foreground )

But in case -p really works and overrides the settings in amavisd.conf, 
I have no objections against this modification.

Gabor Kovesdan


More information about the freebsd-ports mailing list