- Electron version: v1.2.3
- Operating system: Deepin 15.2 (Debian jessie)

After I relaunched My app using the relaunch api(http://electron.atom.io/docs/api/app/#apprelaunchoptions), every `console.log(...)` that I used would throw `EBADF: bad file descriptor, write` error like this:

```
Uncaught Exception:
Error: EBADF: bad file descriptor, write
    at Error (native)
    at Object.fs.writeSync (fs.js:780:20)
    at SyncWriteStream.write (fs.js:1979:6)
    at Console.log (console.js:43:16)
    at Object.exec (/media/z/data/home/z/Projects/Electron/ELaunch/app/plugins/app/linux/index.js:130:13)
    at Object.exec (/media/z/data/home/z/Projects/Electron/ELaunch/app/plugins/index.js:51:12)
    at EventEmitter.ipcMain.on (/media/z/data/home/z/Projects/Electron/ELaunch/app/index.js:35:12)
    at emitTwo (events.js:106:13)
    at EventEmitter.emit (events.js:191:7)
    at EventEmitter.<anonymous> (/media/z/data/home/z/Projects/Electron/ELaunch/node_modules/electron-prebuilt/dist/resources/electron.asar/browser/api/web-contents.js:156:13)
```

I also see #3482 ,
is there any way to fix it?

atom/browser/relauncher_linux.cc
base::ScopedFD relauncher_sync_fd(kRelauncherSyncFD);
  
  sigset_t mask;
  sigemptyset(&mask);
  sigaddset(&mask, SIGUSR2);
  if (sigprocmask(SIG_BLOCK, &mask, NULL) < 0) {
    PLOG(ERROR) << "sigprocmask";
    return;
  }
  
  int usr2_fd = signalfd(-1, &mask, 0);
  if (usr2_fd < 0) {
    PLOG(ERROR) << "signalfd";
    return;
  }
  
  if (HANDLE_EINTR(prctl(PR_SET_PDEATHSIG, SIGUSR2)) != 0) {
    PLOG(ERROR) << "prctl";
    return;
  }
  
  if (HANDLE_EINTR(write(relauncher_sync_fd.get(), "", 1)) != 1) {
    PLOG(ERROR) << "write";
    return;
  }
  
  struct signalfd_siginfo si;
  HANDLE_EINTR(read(usr2_fd, &si, sizeof(si)));
}
int LaunchProgram(const StringVector& relauncher_args,