I'm not sure what you're asking- a program needs to call open so it knows what channel it's controlling.
Do you mean leave the channel available to be opened by the next program? Because that should be the case once the first program has finished.
If you're asking why the state of the output goes back to false when the channel closes, see
this thread.