Date: Thu, 17 Sep 1998 14:05:53 +0200 From: Martin Cracauer <cracauer@cons.org> To: current@FreeBSD.ORG Subject: Proposed change to rc.d startup Message-ID: <19980917140553.A25322@cons.org>
next in thread | raw e-mail | index | archive | help
When starting /usr/local/etc/rc.d stuff, you cannot get past applications that block SIGINT and don't return. You can always use SIGQUIT, but that aborts, no further processing of rc.d is done. The following change puts a "guarding" shell around each script. That way, you can get past one application's start and processed with the others. It is somewhat ugly, hence my desire to inform you in advance. The echo -n at the end is needed to keep /bin/sh from a wrong optimization. The fixes I have for sh either impact efficiency or are too complicated to push them into 3.0, IMO. Maybe someone has a better idea, but short of using a C program to get the same effect, I think that's the best to do for now. # for each valid dir in $local_startup, search for init scripts matching *.sh if [ "X${local_startup}" != X"NO" ]; then echo -n 'Local package initialization:' for dir in ${local_startup}; do [ -d ${dir} ] && for script in ${dir}/*.sh; do [ -x ${script} ] && \ (trap 'exit 1' 2 ; ${script} start ; echo -n) # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ done done echo . fi Martin -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Martin Cracauer <cracauer@cons.org> http://www.cons.org/cracauer Tel.: (private) +4940 5221829 Fax.: (private) +4940 5228536 Paper: (private) Waldstrasse 200, 22846 Norderstedt, Germany To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980917140553.A25322>