* Electron version: 8.0.0
* Operating system: Linux - Fedora 31 - Kernel 5.4.13-201.fc31.x86_64

### Expected behavior
The local store should persist items even though the app is terminated as soon as the item was added.

### Actual behavior
If the app is terminated in less than 2 seconds after an item is added to local storage, the value is not available after the app is reopened.

### How to reproduce
1. Create a new electron app 
(I used the quick start from the website git clone https://github.com/electron/electron-quick-start)

0. Run the app using `npm start`

0. Run a JavaScript code that adds a new key/value pair to localStorage
````
localStorage.setItem("my-key", "my-value")
````

0. Within 3 seconds, terminate the app (killing the process or pressing Ctrl + C)
NOTE: If the app is closed properly (pressing Alt + F4 or click on the "X"), this issue does not occur.

0. Run the app again

0. Check for the localStorage items
````
localStorage.getItem("my-key")
````
Or in the Application tab from Developer Tools.

Both cases are not available neither the key nor the value
shell/browser/electron_browser_main_parts_posix.cc
pid_t g_pipe_pid = -1;
int g_shutdown_pipe_write_fd = -1;
int g_shutdown_pipe_read_fd = -1;
void GracefulShutdownHandler(int signal) {
  
  struct sigaction action;
  memset(&action, 0, sizeof(action));
  action.sa_handler = SIG_DFL;
  RAW_CHECK(sigaction(signal, &action, nullptr) == 0);
  RAW_CHECK(g_pipe_pid == getpid());
  RAW_CHECK(g_shutdown_pipe_write_fd != -1);
  RAW_CHECK(g_shutdown_pipe_read_fd != -1);
  size_t bytes_written = 0;
  do {
    int rv = HANDLE_EINTR(
        write(g_shutdown_pipe_write_fd,
              reinterpret_cast<const char*>(&signal) + bytes_written,
              sizeof(signal) - bytes_written));
    RAW_CHECK(rv >= 0);
    bytes_written += rv;
  } while (bytes_written < sizeof(signal));
}
void SIGHUPHandler(int signal) {