private void recover() throws IOException {
    if (formalFile.exists() && !tmpFile.exists()) {
      // No need to recover
      return;
    }
    if (!formalFile.exists() && !tmpFile.exists()) {
      // First start
      return;
    }
    if (formalFile.exists() && tmpFile.exists()) {
      if (!tmpFile.delete()) {
        LOGGER.warn(
            "Delete system.properties tmp file fail, you may manually delete it: {}",
            tmpFile.getAbsoluteFile());
      }
      return;
    }
    if (!formalFile.exists() && tmpFile.exists()) {
      replaceFormalFile();
      return;
    }
    throw new UnsupportedOperationException("Should never touch here");
  }
Put key and value into properties

@param keyOrValue [key0, value0, key1, value1, ... ]
iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/file/SystemPropertiesHandler.java