On Fri, Jul 25, 2014 at 04:44:27PM -0700, Linda Walsh wrote: > FWIW, this script DOES work interactively in normal operation. > > Just when the system is in pre-single-user state and not > much in the way of resources is available that it blows.
Then you are attempting to use operating system features that haven't been initialized yet. Stop doing that. Here documents create temporary files, possibly in /tmp, or possibly in whatever directory $TMPDIR points to. So, /tmp (or /var/tmp or whatever) must be mounted and writable. Process substitutions **ON LINUX** use /dev/fd/* entries, which are in a special file system that must be mounted. Process substitutions on other operating systems may use that, or named pipes, or even temporary files. In any case, the problem is clearly that your script is trying to use features that aren't available yet, at that point in the boot process. Rewrite the script to avoid using those features, or run it at a different point in the boot process. > #!/bin/bash > > ### BEGIN INIT INFO > # Provides: net-devices Too large. Trim it down to the smallest possible case that still exhibits the problem. But even then, I'm sure you already know what the problem is. (P.S. I despise that "let me figure out the order for you" crap that Debian has started doing. What a disaster. How in the hell is a sysadmin supposed to add a boot script now, and make sure it runs at the right point....)