Date: Thu, 21 Jul 2005 21:28:17 -0500 From: Paul Schmehl <pauls@utdallas.edu> To: freebsd-rc@freebsd.org Subject: Re: New port startup script fails Message-ID: <934769257EAE1C5FD99FD7E3@Paul-Schmehls-Computer.local> In-Reply-To: <20050722004448.GB19090@odin.ac.hmc.edu> References: <468B58E789145A1C6885EA66@utd59514.utdallas.edu> <20050721230123.GA19090@odin.ac.hmc.edu> <B858D08121B1B491F0217584@utd59514.utdallas.edu> <20050722004448.GB19090@odin.ac.hmc.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks. I haven't got it working yet, but I'll figure it out. --On July 21, 2005 5:44:48 PM -0700 Brooks Davis <brooks@one-eyed-alien.net> wrote: > On Thu, Jul 21, 2005 at 06:10:45PM -0500, Paul Schmehl wrote: >> --On Thursday, July 21, 2005 16:01:23 -0700 Brooks Davis >> <brooks@one-eyed-alien.net> wrote: >> >> > On Thu, Jul 21, 2005 at 05:50:12PM -0500, Paul Schmehl wrote: >> >> I'm working on a new port, and I decided to use the new rc.subr type >> >> startup script. After I wrote the script, I started testing it. The >> >> program started fine, but neither stop nor status worked. I read man >> >> (8) rc.subr and studied the script (/etc/rc.subr). >> >> >> >> The program was creating a pid file with the correct name in /var/run, >> >> but for some reason, the stop and status commands apparently couldn't >> >> find? read? the file. Is there a way to troubleshoot this problem to >> >> pin down exactly were the problem is? >> > >> > Far too many things could be wrong for us to do more than speculate. >> > Please send the script in question. >> > >> Here it is: (%%SGUILDIR%% is converted to sguil-server in the Makefile) >> >> # !/bin/sh >> >> # PROVIDE: sguild >> # REQUIRE: DAEMON >> # BEFORE: LOGIN >> # KEYWORD: FreeBSD shutdown >> >> # Add the following lines to /etc/rc.conf to enable sguild: >> # sguild_enable (bool): Set to YES to enable sguild >> # Default: NO >> # sguild_flags (str): Extra flags passed to sguild >> # Default: -D >> # sguild_conf (str): Sguild configuration file >> # Default: >> %%PREFIX%%/etc/%%SGUILDIR%%/sguild.conf >> # >> >> . %%RC_SUBR%% >> >> name="sguild" >> rcvar=`set_rcvar` >> >> command="%%PREFIX%%/bin/%%SGUILDIR%%/sguild" >> >> load_rc_config $name >> >> [ -z "$sguild_enable" ] && sguild_enable="NO" >> [ -z "$sguild_conf" ] && >> sguild_conf="%%PREFIX%%/etc/%%SGUILDIR%%/sguild.conf" >> [ -z "$sguild_flags" ] && sguild_flags="-D" >> >> [ -n "$sguild_conf" ] && sguild_flags="$sguild_flags -c >> $sguild_conf" >> >> run_rc_command "$1" > > Looks mostly good. You can use shell default values instead of the test > -z stuff to set the variables if you want: > > sguild_enable=${sguild_enable:-NO} > >> > A couple of ideas. First, are you setting the pidfile variable? >> >> No. I can, but by default it is set to /var/run/sguild.pid. >> >> > If not, you may need to. >> >> Since $name is sguild, wouldn't the pid be sguild.pid? > > No, you have to set it since rc.subr supports commands without pid > files. > >> > Second, does the program in question change it's >> > name? If so, you may have to implement stop and status by hand. >> >> I'm not sure I understand what you mean here. However, there *is* one >> oddity. When the program is running, ps shows the command to be >> "tclsh8.4 /usr/local/bin/sguil-server/sguild -D -c >> /usr/local/etc/sguil-server/sguild.conf". >> >> Maybe that's the problem? (I thought, since the pidfile was known that >> it wouldn't matter.) > > It's sort of both. The rc.subr framework only kills processing with the > right name and the right pid (iff the pidfile is given) so that innocent > processes aren't killed off with there are leftover PID files. I looked > at rc.subr and realized that there is support for interpreted commands, > but you have to enable it by setting command_interpreter. I'm not quite > sure what to set it to. It looks like the value is mostly ignored, but > I'm not 100% sure. > > -- Brooks > > -- > Any statement of the form "X is the one, true Y" is FALSE. > PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 Paul Schmehl (pauls@utdallas.edu) Adjunct Information Security Officer University of Texas at Dallas AVIEN Founding Member http://www.utdallas.edu/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?934769257EAE1C5FD99FD7E3>