當前位置: 首頁>>代碼示例>>Java>>正文


Java FileUtil.makeShellPath方法代碼示例

本文整理匯總了Java中org.apache.hadoop.fs.FileUtil.makeShellPath方法的典型用法代碼示例。如果您正苦於以下問題:Java FileUtil.makeShellPath方法的具體用法?Java FileUtil.makeShellPath怎麽用?Java FileUtil.makeShellPath使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.hadoop.fs.FileUtil的用法示例。


在下文中一共展示了FileUtil.makeShellPath方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: buildCommandLine

import org.apache.hadoop.fs.FileUtil; //導入方法依賴的package包/類
/**
 * Construct the command line for running the task JVM
 * @param setup The setup commands for the execed process.
 * @param cmd The command and the arguments that should be run
 * @param stdoutFilename The filename that stdout should be saved to
 * @param stderrFilename The filename that stderr should be saved to
 * @param tailLength The length of the tail to be saved.
 * @return the command line as a String
 * @throws IOException
 */
static String buildCommandLine(List<String> setup, List<String> cmd, 
                                    File stdoutFilename,
                                    File stderrFilename,
                                    long tailLength, 
                                    boolean useSetsid)
                              throws IOException {
  
  String stdout = FileUtil.makeShellPath(stdoutFilename);
  String stderr = FileUtil.makeShellPath(stderrFilename);    
  StringBuffer mergedCmd = new StringBuffer();
  
  // Export the pid of taskJvm to env variable JVM_PID.
  // Currently pid is not used on Windows
  if (!Shell.WINDOWS) {
    mergedCmd.append(" export JVM_PID=`echo $$` ; ");
  }

  if (setup != null && setup.size() > 0) {
    mergedCmd.append(addCommand(setup, false));
    mergedCmd.append(";");
  }
  if (tailLength > 0) {
    mergedCmd.append("(");
  } else if(ProcessTree.isSetsidAvailable && useSetsid &&
      !Shell.WINDOWS) {
    mergedCmd.append("exec setsid ");
  } else {
    mergedCmd.append("exec ");
  }
  mergedCmd.append(addCommand(cmd, true));
  mergedCmd.append(" < /dev/null ");
  if (tailLength > 0) {
    mergedCmd.append(" | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" ; exit $PIPESTATUS ) 2>&1 | ");
    mergedCmd.append(tailCommand);
    mergedCmd.append(" -c ");
    mergedCmd.append(tailLength);
    mergedCmd.append(" >> ");
    mergedCmd.append(stderr);
    mergedCmd.append(" ; exit $PIPESTATUS");
  } else {
    mergedCmd.append(" 1>> ");
    mergedCmd.append(stdout);
    mergedCmd.append(" 2>> ");
    mergedCmd.append(stderr);
  }
  return mergedCmd.toString();
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:64,代碼來源:TaskLog.java


注:本文中的org.apache.hadoop.fs.FileUtil.makeShellPath方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。