Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Jan 2007 23:19:35 -0500
From:      DAve <dave.list@pixelhammer.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: cannot launch vsftpd at system startup
Message-ID:  <45BC2457.5030101@pixelhammer.com>
In-Reply-To: <200701271959.25709.pmatulis@sympatico.ca>
References:  <200701271555.37416.pmatulis@sympatico.ca>	<200701271805.47735.pmatulis@sympatico.ca>	<6.0.0.22.2.20070127173326.024d32f0@mail.computinginnovations.com> <200701271959.25709.pmatulis@sympatico.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Matulis wrote:
> Le Samedi 27 Janvier 2007 18:34, Derek Ragona a écrit :
>> change the line:
>> . "%%RC_SUBR%%"
>>
>> to:
>> . "/etc/rc.subr"
>>
>>          -Derek
>>
>> At 05:05 PM 1/27/2007, Peter Matulis wrote:
>>> Le Samedi 27 Janvier 2007 16:36, Derek Ragona a écrit :
>>>> add set -x to the startup script and debug where that error
>>>> message is coming from.
>>>>
>>>>          -Derek
>>>>
>>>> At 02:55 PM 1/27/2007, Peter Matulis wrote:
>>>>> Hi gang,
>>>>>
>>>>> I have read quite a few articles on how to start vsftpd at
>>>>> system bootup but nothing seems to work on my new and updated
>>>>> 6.2 STABLE machine.
>>>>>
>>>>> I have copied /usr/ports/ftp/vsftpd/files/vsftpd.sh.in
>>>>> to /usr/local/etc/rc.d/vsftpd.sh and it is executable.
>>>>>
>>>>> In /etc/rc.conf I am placing:
>>>>>
>>>>> vsftpd_enable="YES"
>>>>>
>>>>> and in vsftpd.conf:
>>>>>
>>>>> listen=YES
>>>>> background=YES
>>>>>
>>>>> I can't see the error when my machine boots but when I attempt
>>>>> to run the rc.d script manually I get:
>>>>>
>>>>> .: Can't open %%RC_SUBR%%: No such file or directory
>>>>>
>>>>> I can start the daemon at the command line:
>>>>>
>>>>> /usr/local/libexec/vsftpd &
>>>>>
>>>>> I installed the port sysutils/rc_subr thinking it may help but
>>>>> it does not.  I also reinstalled vsftpd with the make option
>>>>> RC_NG but it doesn't seem to do anything (isn't it supposed to
>>>>> install the rc.d script?).
>>> The shell tries to parse this line:
>>>
>>> . "%%RC_SUBR%%"
>>>
>>> I have no idea what it is trying to source.
>>>
>>> Here is the entire script:
>>> --------------------------------------------
>>>
>>> #!/bin/sh
>>> #
>>> # $FreeBSD: ports/ftp/vsftpd/files/vsftpd.sh.in,v 1.7 2006/02/20
>>> 20:47:01 dougb Exp $
>>> #
>>>
>>> # PROVIDE: vsftpd
>>> # REQUIRE: DAEMON
>>>
>>> # Add the following line to /etc/rc.conf to enable `vsftpd':
>>> #
>>> # vsftpd_enable="YES"
>>> # vsftpd_flags="/some/path/conf.file" # Not required
>>> #
>>>
>>> . "%%RC_SUBR%%"
>>>
>>> name="vsftpd"
>>> rcvar=`set_rcvar`
>>>
>>> load_rc_config "$name"
>>>
>>> : ${vsftpd_enable:="NO"}
>>> : ${vsftpd_flags:=""}
>>>
>>> command="%%PREFIX%%/libexec/$name"
>>> required_files="%%PREFIX%%/etc/$name.conf"
>>> start_precmd="vsftpd_check"
>>>
>>> vsftpd_check()
>>> {
>>>         if grep -q "^ftp[       ]" /etc/inetd.conf
>>> ${required_files} then
>>>                 err 1 "ftp is already activated in /etc/inetd.conf"
>>>         fi
>>>         if ! egrep -q -i -E "^listen.*=.*YES$" ${required_files}
>>>         then
>>>                 err 1 "vsftpd script need "listen=YES" on config
>>> file" fi
>>>         if ! egrep -q -i -E "^background.*=.*YES$"
>>> ${required_files} then
>>>                 err 1 "vsftpd script need "background=YES" on
>>> config file"
>>>         fi
>>> }
>>>
>>> run_rc_command "$1"
> 
> It seems the funny %% variables cannot be understood.  I had to hard 
> code the paths:
> 
> #. "%%RC_SUBR%%"
> . "/etc/rc.subr"
> 
> name="vsftpd"
> rcvar=`set_rcvar`
> 
> load_rc_config "$name"
> : ${vsftpd_enable:="NO"}
> : ${vsftpd_flags:=""}
> 
> #command="%%PREFIX%%/libexec/$name"
> command="/usr/local/libexec/$name"
> #required_files="%%PREFIX%%/etc/$name.conf"
> required_files="/usr/local/etc/$name.conf"
> 
> Then it worked.  I'm ok with this but it leaves me wondering why I have 
> to do this.  Thanks for your time.

You should not have had to copy that file from the ports dir. The 
%%RC_SUBR%% is normally replaced with the appropriate path during 'make 
install'. I've seen this happen when a port fails to finish the install 
due to errors. Unfortunately most how-to web pages say to run

make;make install;make clean

This doesn't allow you any time to see if any errors occurred or to see 
any messages the port maintainer presents to you after install.

Are you certain your port installed without errors? I would try running 
'make deinstall;make clean;make install' and then see if the port 
properly installs the startup script with the vars expanded for you, or 
if an error pops up.

DAve

-- 
Three years now I've asked Google why they don't have a
logo change for Memorial Day. Why do they choose to do logos
for other non-international holidays, but nothing for
Veterans?

Maybe they forgot who made that choice possible.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45BC2457.5030101>