I'm planning on running an executable as a child process in my program (e.g. using Ruby's popen or C's exec() family of functions). However, the executable I'm planning on running is licensed through the GPL.The GPL, as I understand it, requires that all linked code to GPL licensed code needs to also be GPL.But there's also an arm's length exception, discussed in the FAQ:However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.Would runnning an executable as a child process be part of this exception, or would it still be considered linking for the purposes of the license?If it is considered linking, how does it differ from running program, like Nmap, from the a command line?
Is running an executable as a child process the same as linking a library?
licensing;gpl
I think this quote from the section on plugins might lead you in the right direction.If the program uses fork and exec to invoke plug-ins, then the  plug-ins are separate programs, so the license for the main program  makes no requirements for them. So you can use the GPL for a plug-in,  and there are no special requirements.