Class ShellUtils

java.lang.Object
org.apache.storm.utils.ShellUtils
Direct Known Subclasses:
ShellUtils.ShellCommandExecutor

public abstract class ShellUtils extends Object
  • Field Details

    • LOG

      public static final org.slf4j.Logger LOG
    • osType

      public static final ShellUtils.OSType osType
    • WINDOWS

      public static final boolean WINDOWS
    • SOLARIS

      public static final boolean SOLARIS
    • MAC

      public static final boolean MAC
    • FREEBSD

      public static final boolean FREEBSD
    • LINUX

      public static final boolean LINUX
    • OTHER

      public static final boolean OTHER
    • numShellExceptions

      public static final com.codahale.metrics.Meter numShellExceptions
    • TOKEN_SEPARATOR_REGEX

      public static final String TOKEN_SEPARATOR_REGEX
      Token separator regex used to parse Shell tool outputs.
    • timeOutInterval

      protected long timeOutInterval
      Time after which the executing script would be timed out.
  • Constructor Details

    • ShellUtils

      public ShellUtils()
    • ShellUtils

      public ShellUtils(long interval)
    • ShellUtils

      public ShellUtils(long interval, boolean redirectErrorStream)
      Creates a new shell utils instance.
      Parameters:
      interval - the minimum duration to wait before re-executing the command
  • Method Details

    • getGroupsForUserCommand

      public static String[] getGroupsForUserCommand(String user)
      a Unix command to get a given user's groups list. Windows is not supported.
    • getLogHandler

      public static ShellLogHandler getLogHandler(Map<String,Object> topoConf)
    • getExitCode

      public int getExitCode()
      get the exit code.
      Returns:
      the exit code of the process
    • setEnvironment

      protected void setEnvironment(Map<String,String> env)
      set the environment for the command.
      Parameters:
      env - Mapping of environment variables
    • setWorkingDirectory

      protected void setWorkingDirectory(File dir)
      set the working directory.
      Parameters:
      dir - The directory where the command would be executed
    • run

      protected void run() throws IOException
      check to see if a command needs to be executed and execute if needed.
      Throws:
      IOException
    • getExecString

      protected abstract String[] getExecString()
      return an array containing the command name & its parameters.
    • parseExecResult

      protected abstract void parseExecResult(BufferedReader lines) throws IOException
      Parse the execution result.
      Throws:
      IOException
    • getProcess

      public Process getProcess()
      get the current sub-process executing the given command.
      Returns:
      process executing the command
    • isTimedOut

      public boolean isTimedOut()
      To check if the passed script to shell command executor timed out or not.
      Returns:
      if the script timed out.