diff options
author | davidn <davidn@FreeBSD.org> | 1997-08-18 01:40:12 +0000 |
---|---|---|
committer | davidn <davidn@FreeBSD.org> | 1997-08-18 01:40:12 +0000 |
commit | 228bbc181cefc1f36d72c2b52dec55b3665a14cd (patch) | |
tree | 2562d4772e6b006aac64c65fdede422ace98bd02 /sbin/init | |
parent | d9556b110d475af4b0a7bcb2f4ccbfa53b4f5f80 (diff) | |
download | FreeBSD-src-228bbc181cefc1f36d72c2b52dec55b3665a14cd.zip FreeBSD-src-228bbc181cefc1f36d72c2b52dec55b3665a14cd.tar.gz |
Test that rc.shutdown exists before attempting to run it - silently
return success if it doesn't to prevent any unwanted error msgs.
Diffstat (limited to 'sbin/init')
-rw-r--r-- | sbin/init/init.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sbin/init/init.c b/sbin/init/init.c index 2070ed3..6411a3f 100644 --- a/sbin/init/init.c +++ b/sbin/init/init.c @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: init.c,v 1.25 1997/08/06 16:07:52 ache Exp $ + * $Id: init.c,v 1.26 1997/08/06 16:34:51 ache Exp $ */ #ifndef lint @@ -51,6 +51,8 @@ static char sccsid[] = "@(#)init.c 8.1 (Berkeley) 7/15/93"; #include <sys/mount.h> #include <sys/sysctl.h> #include <sys/wait.h> +#include <sys/types.h> +#include <sys/stat.h> #include <db.h> #include <errno.h> @@ -1447,6 +1449,16 @@ runshutdown() size_t len; char *argv[3]; struct sigaction sa; + struct stat sb; + + /* + * rc.shutdown is optional, so to prevent any unnecessary + * complaints from the shell we simply don't run it if the + * file does not exist. If the stat() here fails for other + * reasons, we'll let the shell complain. + */ + if (stat(_PATH_RUNDOWN, &sb) == -1 && errno == ENOENT) + return 0; if ((pid = fork()) == 0) { int fd; |