public abstract class ShellUtils extends Object
Modifier and Type | Class and Description |
---|---|
static class |
ShellUtils.ExitCodeException
This is an IOException with exit code added.
|
static class |
ShellUtils.OSType
OSType detection.
|
static class |
ShellUtils.ShellCommandExecutor
A simple shell command executor.
|
Modifier and Type | Field and Description |
---|---|
static boolean |
FREEBSD |
static boolean |
LINUX |
static org.slf4j.Logger |
LOG |
static boolean |
MAC |
static com.codahale.metrics.Meter |
numShellExceptions |
static ShellUtils.OSType |
osType |
static boolean |
OTHER |
static boolean |
SOLARIS |
protected long |
timeOutInterval
Time after which the executing script would be timed out.
|
static String |
TOKEN_SEPARATOR_REGEX
Token separator regex used to parse Shell tool outputs.
|
static boolean |
WINDOWS |
Constructor and Description |
---|
ShellUtils() |
ShellUtils(long interval) |
ShellUtils(long interval,
boolean redirectErrorStream)
Creates a new shell utils instance.
|
Modifier and Type | Method and Description |
---|---|
protected abstract String[] |
getExecString()
return an array containing the command name & its parameters.
|
int |
getExitCode()
get the exit code.
|
static String[] |
getGroupsForUserCommand(String user)
a Unix command to get a given user's groups list.
|
static ShellLogHandler |
getLogHandler(Map<String,Object> topoConf) |
Process |
getProcess()
get the current sub-process executing the given command.
|
boolean |
isTimedOut()
To check if the passed script to shell command executor timed out or not.
|
protected abstract void |
parseExecResult(BufferedReader lines)
Parse the execution result.
|
protected void |
run()
check to see if a command needs to be executed and execute if needed.
|
protected void |
setEnvironment(Map<String,String> env)
set the environment for the command.
|
protected void |
setWorkingDirectory(File dir)
set the working directory.
|
public static final org.slf4j.Logger LOG
public static final ShellUtils.OSType osType
public static final boolean WINDOWS
public static final boolean SOLARIS
public static final boolean MAC
public static final boolean FREEBSD
public static final boolean LINUX
public static final boolean OTHER
public static final com.codahale.metrics.Meter numShellExceptions
public static final String TOKEN_SEPARATOR_REGEX
protected long timeOutInterval
public ShellUtils()
public ShellUtils(long interval)
public ShellUtils(long interval, boolean redirectErrorStream)
interval
- the minimum duration to wait before re-executing the commandpublic static String[] getGroupsForUserCommand(String user)
public static ShellLogHandler getLogHandler(Map<String,Object> topoConf)
public int getExitCode()
protected void setEnvironment(Map<String,String> env)
env
- Mapping of environment variablesprotected void setWorkingDirectory(File dir)
dir
- The directory where the command would be executedprotected void run() throws IOException
IOException
protected abstract String[] getExecString()
protected abstract void parseExecResult(BufferedReader lines) throws IOException
IOException
public Process getProcess()
public boolean isTimedOut()
Copyright © 2023 The Apache Software Foundation. All rights reserved.