code: @SuppressWarnings("rawtypes")
      public static void main(String[] args) {
          StringBuilder sb = new StringBuilder();
          for (String arg : args) {
              sb.append(arg).append(" ");
          }
          LOG.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!");
          LOG.info("Begin to start worker:" + sb.toString());
          LOG.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!");
          if (args.length < 5) {
              LOG.error("The length of args is less than 5 ");
              System.exit(-1);
          }
  
          sb = new StringBuilder();
          try {
              String topologyId = args[0];
              String supervisorId = args[1];
              String portStr = args[2];
              String workerId = args[3];
              String jarPath = args[4];
  
              killOldWorker(portStr);
  
              Map conf = Utils.readStormConfig();
              StormConfig.validate_distributed_mode(conf);
  
              JStormServerUtils.startTaobaoJvmMonitor();
  
              sb.append("topologyId:").append(topologyId).append(", ").append("port:").append(portStr).append(", ")
                      .append("workerId:").append(workerId).append(", ").append("jarPath:").append(jarPath).append("\n");
  
              WorkerShutdown sd = mk_worker(conf, null, topologyId, supervisorId, Integer.parseInt(portStr), workerId, jarPath);
              sd.join();
  
              LOG.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
              LOG.info("Successfully shutdown worker " + sb.toString());
              LOG.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
          } catch (Throwable e) {
              String errMsg = "Failed to create worker: " + sb.toString();
              LOG.error(errMsg, e);
              JStormUtils.halt_process(-1, errMsg);
          }
      }
docs: start worker
  
  @param args worker start args