message: check ipc status before run node and remove the .ipc file if necessary
  * check ipc status before run node
  check ipc status before run node
  do necessary clean work
diff: @@ -6,10 +6,11 @@ use scmd::CmdContext;
  use starcoin_account_provider::ProviderFactory;
  use starcoin_cmd::*;
  use starcoin_cmd::{CliState, StarcoinOpt};
  -use starcoin_config::{Connect, G_APP_VERSION, G_CRATE_VERSION};
  +use starcoin_config::{Connect, NodeConfig, G_APP_VERSION, G_CRATE_VERSION};
  use starcoin_logger::prelude::*;
  use starcoin_node_api::errors::NodeStartError;
  use starcoin_rpc_client::RpcClient;
  +use std::fs;
  use std::sync::Arc;
  use std::time::Duration;
  @@ -33,6 +34,21 @@ fn run() -> Result<()> {
  (client, None)
  } else {
  info!("Start starcoin node...");
  + // check and do some clean work
  + let config = NodeConfig::load_with_opt(opt)
  + .expect("load config with opt should success.");
  + let ipc_file = config.rpc.get_ipc_file();
  + if ipc_file.exists() {
  + // check if ipc is connectable
  + info!(
  + "ipc_file: {:?} already exists, try to check if it's connectable",
  + ipc_file
  + );
  + if RpcClient::connect_ipc(&ipc_file).is_err() {
  + info!("ipc_file: {:?} is not usable, just to remove it.", ipc_file);
  + _ = fs::remove_file(ipc_file);
  + }
  + }
  let (node_handle, config) = starcoin_node::run_node_by_opt(opt)?;
  match node_handle {
  //first cli use local connect.
  