I have several launchers on my desktop for various programs, and there is a "run in a terminal" setting for those launchers.
When I check that setting, the program runs from a terminal, and logs its output there. I suppose that it could read
stdin from the terminal too.
However: what happens to IO when the program is not ran by a terminal? Also, what happens when I execute system (shell) commands from a program like that?
Is there a "background" shell that runs those programs? Or does every program get its shell through which it interfaces with the rest of the system?