MEGA 2560 Hard Reset via Software/USB

Hey Guys,
I'm usually more of the lurker type. So this is one of my first posts.
I've been using arduinos for a while now and I'm generally fond of using them for simpler tasks.
I'm in the middle of a project that is using a couple Uno's, a MEGA, and a Yun to manage a greenhouse remotely. Unfortunately, the power is less than reliable here and I get brownout and blackout all the time. I've made my data acquisition blackout resistant using an external time chip, but occasionally the power will come back on, but the program won't restart till I hit the reset button. My Mega has 2 shields installed on it. One is an Uno shield from seeed for ethernet (don't buy it), and the other is a custom shield to interface the MEGA with a perf board sensor array.
THe problem I'm dealing with is that the reset pins a completely covered, and I don't have any room on the perf to wire a reset button. In addition, I can't always be there.
I know that the ISP does a hard reset each time you upload new code via USB. Is there a way I can emulate that with an external stimulus from my Yun (as an example)?
As an alternate strategy, I've read that there may be something wrong with my bootloader and that is why its not automatically restarting each time. Something about a bug in the factory version.

Any tips to point my research in the right direction is appreciated. I don't know a lot about the hardware in the ISP system. If I can't figure it out, then I'll make a deadman switch with a 555 timer that will administer CPR in the even of no heartbeat signal.

Thanks for the tips - MTD

The Reset line, on the Power Header or the ICSP header, is pulled to 5V with a 10K resistor.
Can the Yun pull that line low? If not directly, then via a simple transistor? I'd say yes.

Right, I thought of that. What specifically is of interest is how the USB triggers that during a sketch upload. My Yun has a USB out and I can easily connect the two devices via the traditional USB cable.

The two devices already trade a whole bunch of info via HTML when its working correctly. I was thinking I could use the virtual serial com to restart the mega remotely from a server command and just leave them connected via USB except for troubleshooting.

The USB reset is done via the TTL side of the chip.
Arduino’s use DTR to bump the hardware RESET line as a reset - to kick the bootloader at startup time.

What I do, is carefully use the WDT to force a restart - which may be better in some cases, as the hardware is not completely cleared, and your program may be able to pickup almost where it left off.