Oh, sorry. I thought this was common knowledge. Guess not.
Another sneak peak:
The order of looking for the scripts is:
NVRAM - shell script entered into the Tomato configuration web interface.
/etc/config/ - file
/jffs/etc/config/ - file
/opt/etc/config/ - file
/mmc/etc/config/ - file
/tmp/config/ - file
The files are executed in each directory in alpha-numeric order. The convention for naming such files is "NN-description.suffix", where NN is a two digit number for controlling the order in which the files are executed. Each directory is examined completely before moving on to the next directory. The files should have execute privilege. (chmod +x filename). The files can be either a shell script or an executable program.
When the triggering event occurs, the Tomato system will begin executing the corresponding scripts. It will wait up to N seconds for each script to finish, and then continue. It will stop waiting either when the time is up or when the script exits, whichever comes first. The time (in seconds) is the number in the brackets in the above event list.
Notes on wait times:
The wait time is for each individual script, not for all the scripts. This means that, for example, if you have 10 init scripts and each has a "sleep 5" in it, then the total delay during system startup will be 20 seconds. Furthermore, each script will continue for (at least) an additional 3 seconds before exiting. So it is possible for several different scripts to overlap in their execution.
The wait is for the script/process that gets spawned. If you have a script that you know will take a long time and don't want the system to hang for the duration of the time-out, then the script should spawn a sub-process (A.K.A. background process) and then exit immediately. The background process would be the one which does the real work.