blob: e4b8cf21c6373bfb7f7ba47a066277bd399bdc76 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:01:39 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ServiceLauncher (Apache Hadoop Common 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ServiceLauncher (Apache Hadoop Common 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":9,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":9,"i26":10,"i27":10,"i28":10,"i29":9,"i30":9,"i31":10,"i32":9,"i33":10,"i34":10,"i35":10,"i36":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ServiceLauncher.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html" title="interface in org.apache.hadoop.service.launcher"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.MinimalGenericOptionsParser.html" title="class in org.apache.hadoop.service.launcher"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/service/launcher/ServiceLauncher.html" target="_top">Frames</a></li>
<li><a href="ServiceLauncher.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.service.launcher</div>
<h2 title="Class ServiceLauncher" class="title">Class ServiceLauncher&lt;S extends <a href="../../../../../org/apache/hadoop/service/Service.html" title="interface in org.apache.hadoop.service">Service</a>&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.service.launcher.ServiceLauncher&lt;S&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>S</code> - service class to cast the generated service to.</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html" title="interface in org.apache.hadoop.service.launcher">LauncherArguments</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html" title="interface in org.apache.hadoop.service.launcher">LauncherExitCodes</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ServiceLauncher&lt;S extends <a href="../../../../../org/apache/hadoop/service/Service.html" title="interface in org.apache.hadoop.service">Service</a>&gt;</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html" title="interface in org.apache.hadoop.service.launcher">LauncherExitCodes</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html" title="interface in org.apache.hadoop.service.launcher">LauncherArguments</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a></pre>
<div class="block">A class to launch any YARN service by name.
It's designed to be subclassed for custom entry points.
Workflow:
<ol>
<li>An instance of the class is created. It must be of the type
<a href="../../../../../org/apache/hadoop/service/Service.html" title="interface in org.apache.hadoop.service"><code>Service</code></a></li>
<li>If it implements
<a href="../../../../../org/apache/hadoop/service/launcher/LaunchableService.html#bindArgs-org.apache.hadoop.conf.Configuration-java.util.List-"><code>LaunchableService.bindArgs(Configuration, List)</code></a>,
it is given the binding args off the CLI after all general configuration
arguments have been stripped.</li>
<li>Its <a href="../../../../../org/apache/hadoop/service/Service.html#init-org.apache.hadoop.conf.Configuration-"><code>Service.init(Configuration)</code></a> and <a href="../../../../../org/apache/hadoop/service/Service.html#start--"><code>Service.start()</code></a>
methods are called.</li>
<li>If it implements it, <a href="../../../../../org/apache/hadoop/service/launcher/LaunchableService.html#execute--"><code>LaunchableService.execute()</code></a>
is called and its return code used as the exit code.</li>
<li>Otherwise: it waits for the service to stop, assuming that the
<a href="../../../../../org/apache/hadoop/service/Service.html#start--"><code>Service.start()</code></a> method spawns one or more thread
to perform work</li>
<li>If any exception is raised and provides an exit code,
that is, it implements <a href="../../../../../org/apache/hadoop/util/ExitCodeProvider.html" title="interface in org.apache.hadoop.util"><code>ExitCodeProvider</code></a>,
the return value of <a href="../../../../../org/apache/hadoop/util/ExitCodeProvider.html#getExitCode--"><code>ExitCodeProvider.getExitCode()</code></a>,
becomes the exit code of the command.</li>
</ol>
Error and warning messages are logged to <code>stderr</code>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.MinimalGenericOptionsParser.html" title="class in org.apache.hadoop.service.launcher">ServiceLauncher.MinimalGenericOptionsParser</a></span></code>
<div class="block">A generic options parser which does not parse any of the traditional
Hadoop options.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#DEFAULT_CONFIGS">DEFAULT_CONFIGS</a></span></code>
<div class="block">List of the standard configurations to create (and so load in properties).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#NAME">NAME</a></span></code>
<div class="block">The name of this class.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#SHUTDOWN_PRIORITY">SHUTDOWN_PRIORITY</a></span></code>
<div class="block">Priority for the shutdown hook: 30.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#USAGE_MESSAGE">USAGE_MESSAGE</a></span></code>
<div class="block">Usage message.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#USAGE_NAME">USAGE_NAME</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#USAGE_SERVICE_ARGUMENTS">USAGE_SERVICE_ARGUMENTS</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.service.launcher.LauncherExitCodes">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.hadoop.service.launcher.<a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html" title="interface in org.apache.hadoop.service.launcher">LauncherExitCodes</a></h3>
<code><a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_BAD_CONFIGURATION">EXIT_BAD_CONFIGURATION</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_CLIENT_INITIATED_SHUTDOWN">EXIT_CLIENT_INITIATED_SHUTDOWN</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_COMMAND_ARGUMENT_ERROR">EXIT_COMMAND_ARGUMENT_ERROR</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_CONNECTIVITY_PROBLEM">EXIT_CONNECTIVITY_PROBLEM</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_EXCEPTION_THROWN">EXIT_EXCEPTION_THROWN</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_FAIL">EXIT_FAIL</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_FORBIDDEN">EXIT_FORBIDDEN</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_INTERRUPTED">EXIT_INTERRUPTED</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_NOT_ACCEPTABLE">EXIT_NOT_ACCEPTABLE</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_NOT_FOUND">EXIT_NOT_FOUND</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_OPERATION_NOT_ALLOWED">EXIT_OPERATION_NOT_ALLOWED</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_OTHER_FAILURE">EXIT_OTHER_FAILURE</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_SERVICE_CREATION_FAILURE">EXIT_SERVICE_CREATION_FAILURE</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_SERVICE_LIFECYCLE_EXCEPTION">EXIT_SERVICE_LIFECYCLE_EXCEPTION</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_SERVICE_UNAVAILABLE">EXIT_SERVICE_UNAVAILABLE</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_SUCCESS">EXIT_SUCCESS</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_TASK_LAUNCH_FAILURE">EXIT_TASK_LAUNCH_FAILURE</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_UNAUTHORIZED">EXIT_UNAUTHORIZED</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_UNIMPLEMENTED">EXIT_UNIMPLEMENTED</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_UNSUPPORTED_VERSION">EXIT_UNSUPPORTED_VERSION</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_USAGE">EXIT_USAGE</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.service.launcher.LauncherArguments">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.hadoop.service.launcher.<a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html" title="interface in org.apache.hadoop.service.launcher">LauncherArguments</a></h3>
<code><a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#ARG_CONF">ARG_CONF</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#ARG_CONF_PREFIXED">ARG_CONF_PREFIXED</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#ARG_CONF_SHORT">ARG_CONF_SHORT</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#ARG_CONFCLASS">ARG_CONFCLASS</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#ARG_CONFCLASS_PREFIXED">ARG_CONFCLASS_PREFIXED</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#ARG_CONFCLASS_SHORT">ARG_CONFCLASS_SHORT</a>, <a href="../../../../../org/apache/hadoop/service/launcher/LauncherArguments.html#E_PARSE_FAILED">E_PARSE_FAILED</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#ServiceLauncher-java.lang.String-">ServiceLauncher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceClassName)</code>
<div class="block">Create an instance of the launcher.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#ServiceLauncher-java.lang.String-java.lang.String-">ServiceLauncher</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceClassName)</code>
<div class="block">Create an instance of the launcher.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#bindCommandOptions--">bindCommandOptions</a></span>()</code>
<div class="block">Set the <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#commandOptions"><code>commandOptions</code></a> field to the result of
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#createOptions--"><code>createOptions()</code></a>; protected for subclasses and test access.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#convertToExitException-java.lang.Throwable-">convertToExitException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;thrown)</code>
<div class="block">Convert an exception to an <code>ExitException</code>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#coreServiceLaunch-org.apache.hadoop.conf.Configuration-S-java.util.List-boolean-boolean-">coreServiceLaunch</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;instance,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;processedArgs,
boolean&nbsp;addShutdownHook,
boolean&nbsp;execute)</code>
<div class="block">Launch the service.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#createConfiguration--">createConfiguration</a></span>()</code>
<div class="block">Override point: create the base configuration for the service.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.util.GenericOptionsParser</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#createGenericOptionsParser-org.apache.hadoop.conf.Configuration-java.lang.String:A-">createGenericOptionsParser</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;argArray)</code>
<div class="block">Override point: create a generic options parser or subclass thereof.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected org.apache.commons.cli.Options</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#createOptions--">createOptions</a></span>()</code>
<div class="block">Override point: create an options instance to combine with the
standard options set.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#error-java.lang.String-java.lang.Throwable-">error</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;thrown)</code>
<div class="block">Report an error.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#exit-org.apache.hadoop.util.ExitUtil.ExitException-">exit</a></span>(<a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a>&nbsp;ee)</code>
<div class="block">Exit the JVM using an exception for the exit code and message,
invoking <code>ExitUtil.terminate(ExitUtil.ExitException)</code>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#exit-int-java.lang.String-">exit</a></span>(int&nbsp;exitCode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
<div class="block">Exit the JVM.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#exitWithMessage-int-java.lang.String-">exitWithMessage</a></span>(int&nbsp;status,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
<div class="block">Exit with a printed message.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#exitWithUsageMessage--">exitWithUsageMessage</a></span>()</code>
<div class="block">Exit with the usage exit code <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_USAGE"><code>LauncherExitCodes.EXIT_USAGE</code></a>
and message <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#USAGE_MESSAGE"><code>USAGE_MESSAGE</code></a>.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#extractCommandOptions-org.apache.hadoop.conf.Configuration-java.util.List-">extractCommandOptions</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
<div class="block">Extract the command options and apply them to the configuration,
building an array of processed arguments to hand down to the service.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getClassLoader--">getClassLoader</a></span>()</code>
<div class="block">Override point: get the classloader to use.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getConfiguration--">getConfiguration</a></span>()</code>
<div class="block">Get the configuration constructed from the command line arguments.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getConfigurationsToCreate--">getConfigurationsToCreate</a></span>()</code>
<div class="block">Override point: Get a list of configuration classes to create.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getService--">getService</a></span>()</code>
<div class="block">Get the service.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getServiceException--">getServiceException</a></span>()</code>
<div class="block">Get the exit exception used to end this service.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getServiceExitCode--">getServiceExitCode</a></span>()</code>
<div class="block">The exit code from a successful service execution.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getServiceName--">getServiceName</a></span>()</code>
<div class="block">Get the service name via <a href="../../../../../org/apache/hadoop/service/Service.html#getName--"><code>Service.getName()</code></a>.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getUsageMessage--">getUsageMessage</a></span>()</code>
<div class="block">Get the usage message, ideally dynamically.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/service/Service.html" title="interface in org.apache.hadoop.service">Service</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#instantiateService-org.apache.hadoop.conf.Configuration-">instantiateService</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf)</code>
<div class="block">Instantiate the service defined in <code>serviceClassName</code>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#launchService-org.apache.hadoop.conf.Configuration-java.util.List-boolean-boolean-">launchService</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;processedArgs,
boolean&nbsp;addShutdownHook,
boolean&nbsp;execute)</code>
<div class="block">Launch a service catching all exceptions and downgrading them to exit codes
after logging.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#launchService-org.apache.hadoop.conf.Configuration-S-java.util.List-boolean-boolean-">launchService</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;instance,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;processedArgs,
boolean&nbsp;addShutdownHook,
boolean&nbsp;execute)</code>
<div class="block">Launch a service catching all exceptions and downgrading them to exit codes
after logging.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#launchServiceAndExit-java.util.List-">launchServiceAndExit</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
<div class="block">Launch the service and exit.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#loadConfigurationClasses--">loadConfigurationClasses</a></span>()</code>
<div class="block">This creates all the configurations defined by
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getConfigurationsToCreate--"><code>getConfigurationsToCreate()</code></a> , ensuring that
the resources have been pushed in.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>
<div class="block">This is the JVM entry point for the service launcher.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#parseCommandArgs-org.apache.hadoop.conf.Configuration-java.util.List-">parseCommandArgs</a></span>(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
<div class="block">Parse the command arguments, extracting the service class as the last
element of the list (after extracting all the rest).</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#registerFailureHandling--">registerFailureHandling</a></span>()</code>
<div class="block">Override point: register this class as the handler for the control-C
and SIGINT interrupts.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLaunchException.html" title="class in org.apache.hadoop.service.launcher">ServiceLaunchException</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceCreationFailure-java.lang.Exception-">serviceCreationFailure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;exception)</code>
<div class="block">Generate an exception announcing a failure to create the service.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceMain-java.util.List-">serviceMain</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;argsList)</code>
<div class="block">The real main function, which takes the arguments as a list.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceMain-java.lang.String...-">serviceMain</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</code>
<div class="block">Varargs version of the entry point for testing and other in-JVM use.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#setService-S-">setService</a></span>(<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;s)</code>
<div class="block">Setter is to give subclasses the ability to manipulate the service.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#startupShutdownMessage-java.lang.String-java.util.List-">startupShutdownMessage</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;classname,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
<div class="block">Build a log message for starting up and shutting down.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#uncaughtException-java.lang.Thread-java.lang.Throwable-">uncaughtException</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;thread,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;exception)</code>
<div class="block">Handler for uncaught exceptions: terminate the service.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#verifyConfigurationFilesExist-java.lang.String:A-">verifyConfigurationFilesExist</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;filenames)</code>
<div class="block">Verify that all the specified filenames exist.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#warn-java.lang.String-">warn</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;text)</code>
<div class="block">Print a warning message.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="SHUTDOWN_PRIORITY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SHUTDOWN_PRIORITY</h4>
<pre>protected static final&nbsp;int SHUTDOWN_PRIORITY</pre>
<div class="block">Priority for the shutdown hook: 30.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.service.launcher.ServiceLauncher.SHUTDOWN_PRIORITY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NAME</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NAME</pre>
<div class="block">The name of this class.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.service.launcher.ServiceLauncher.NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="USAGE_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>USAGE_NAME</h4>
<pre>protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USAGE_NAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.service.launcher.ServiceLauncher.USAGE_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="USAGE_SERVICE_ARGUMENTS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>USAGE_SERVICE_ARGUMENTS</h4>
<pre>protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USAGE_SERVICE_ARGUMENTS</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.service.launcher.ServiceLauncher.USAGE_SERVICE_ARGUMENTS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="USAGE_MESSAGE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>USAGE_MESSAGE</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USAGE_MESSAGE</pre>
<div class="block">Usage message.
Text: "Usage: ServiceLauncher [--conf <conf file>] [--hadoopconf <configuration classname>] service-classname <service arguments>"</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.service.launcher.ServiceLauncher.USAGE_MESSAGE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_CONFIGS">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_CONFIGS</h4>
<pre>protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] DEFAULT_CONFIGS</pre>
<div class="block">List of the standard configurations to create (and so load in properties).
The values are Hadoop, HDFS and YARN configurations.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ServiceLauncher-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ServiceLauncher</h4>
<pre>public&nbsp;ServiceLauncher(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceClassName)</pre>
<div class="block">Create an instance of the launcher.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceClassName</code> - classname of the service</dd>
</dl>
</li>
</ul>
<a name="ServiceLauncher-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ServiceLauncher</h4>
<pre>public&nbsp;ServiceLauncher(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;serviceClassName)</pre>
<div class="block">Create an instance of the launcher.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceName</code> - name of service for text messages</dd>
<dd><code>serviceClassName</code> - classname of the service</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getService--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getService</h4>
<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;getService()</pre>
<div class="block">Get the service.
Null until
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#coreServiceLaunch-org.apache.hadoop.conf.Configuration-S-java.util.List-boolean-boolean-"><code>coreServiceLaunch(Configuration, Service, List, boolean, boolean)</code></a>
has completed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the service</dd>
</dl>
</li>
</ul>
<a name="setService-org.apache.hadoop.service.Service-">
<!-- -->
</a><a name="setService-S-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setService</h4>
<pre>protected&nbsp;void&nbsp;setService(<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;s)</pre>
<div class="block">Setter is to give subclasses the ability to manipulate the service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - the new service</dd>
</dl>
</li>
</ul>
<a name="getConfiguration--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfiguration</h4>
<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;getConfiguration()</pre>
<div class="block">Get the configuration constructed from the command line arguments.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the configuration used to create the service</dd>
</dl>
</li>
</ul>
<a name="getServiceExitCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceExitCode</h4>
<pre>public final&nbsp;int&nbsp;getServiceExitCode()</pre>
<div class="block">The exit code from a successful service execution.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the exit code.</dd>
</dl>
</li>
</ul>
<a name="getServiceException--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceException</h4>
<pre>public final&nbsp;<a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a>&nbsp;getServiceException()</pre>
<div class="block">Get the exit exception used to end this service.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an exception, which will be null until the service
has exited (and <code>System.exit</code> has not been called)</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="launchServiceAndExit-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchServiceAndExit</h4>
<pre>public&nbsp;void&nbsp;launchServiceAndExit(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
<div class="block">Launch the service and exit.
<ol>
<li>Parse the command line.</li>
<li>Build the service configuration from it.</li>
<li>Start the service.</li>
<li>If it is a <a href="../../../../../org/apache/hadoop/service/launcher/LaunchableService.html" title="interface in org.apache.hadoop.service.launcher"><code>LaunchableService</code></a>: execute it</li>
<li>Otherwise: wait for it to finish.</li>
<li>Exit passing the status code to the <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#exit-int-java.lang.String-"><code>exit(int, String)</code></a>
method.</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>args</code> - arguments to the service. <code>arg[0]</code> is
assumed to be the service classname.</dd>
</dl>
</li>
</ul>
<a name="bindCommandOptions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bindCommandOptions</h4>
<pre>protected&nbsp;void&nbsp;bindCommandOptions()</pre>
<div class="block">Set the <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#commandOptions"><code>commandOptions</code></a> field to the result of
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#createOptions--"><code>createOptions()</code></a>; protected for subclasses and test access.</div>
</li>
</ul>
<a name="getUsageMessage--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUsageMessage</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsageMessage()</pre>
<div class="block">Get the usage message, ideally dynamically.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the usage message</dd>
</dl>
</li>
</ul>
<a name="createOptions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createOptions</h4>
<pre>protected&nbsp;org.apache.commons.cli.Options&nbsp;createOptions()</pre>
<div class="block">Override point: create an options instance to combine with the
standard options set.
<i>Important. Synchronize uses of <code>OptionBuilder</code></i>
with <code>OptionBuilder.class</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new options</dd>
</dl>
</li>
</ul>
<a name="createConfiguration--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createConfiguration</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;createConfiguration()</pre>
<div class="block">Override point: create the base configuration for the service.
Subclasses can override to create HDFS/YARN configurations etc.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the configuration to use as the service initializer.</dd>
</dl>
</li>
</ul>
<a name="getConfigurationsToCreate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConfigurationsToCreate</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConfigurationsToCreate()</pre>
<div class="block">Override point: Get a list of configuration classes to create.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the array of configs to attempt to create. If any are off the
classpath, that is logged</dd>
</dl>
</li>
</ul>
<a name="loadConfigurationClasses--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadConfigurationClasses</h4>
<pre>public&nbsp;int&nbsp;loadConfigurationClasses()</pre>
<div class="block">This creates all the configurations defined by
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getConfigurationsToCreate--"><code>getConfigurationsToCreate()</code></a> , ensuring that
the resources have been pushed in.
If one cannot be loaded it is logged and the operation continues
except in the case that the class does load but it isn't actually
a subclass of <a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf"><code>Configuration</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>ExitUtil.ExitException</code> - if a loaded class is of the wrong type</dd>
</dl>
</li>
</ul>
<a name="launchService-org.apache.hadoop.conf.Configuration-java.util.List-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchService</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a>&nbsp;launchService(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;processedArgs,
boolean&nbsp;addShutdownHook,
boolean&nbsp;execute)</pre>
<div class="block">Launch a service catching all exceptions and downgrading them to exit codes
after logging.
Sets <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceException"><code>serviceException</code></a> to this value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration to use</dd>
<dd><code>processedArgs</code> - command line after the launcher-specific arguments
have been stripped out.</dd>
<dd><code>addShutdownHook</code> - should a shutdown hook be added to terminate
this service on shutdown. Tests should set this to false.</dd>
<dd><code>execute</code> - execute/wait for the service to stop.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an exit exception, which will have a status code of 0 if it worked</dd>
</dl>
</li>
</ul>
<a name="launchService-org.apache.hadoop.conf.Configuration-org.apache.hadoop.service.Service-java.util.List-boolean-boolean-">
<!-- -->
</a><a name="launchService-org.apache.hadoop.conf.Configuration-S-java.util.List-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>launchService</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a>&nbsp;launchService(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;instance,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;processedArgs,
boolean&nbsp;addShutdownHook,
boolean&nbsp;execute)</pre>
<div class="block">Launch a service catching all exceptions and downgrading them to exit codes
after logging.
Sets <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceException"><code>serviceException</code></a> to this value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration to use</dd>
<dd><code>instance</code> - optional instance of the service.</dd>
<dd><code>processedArgs</code> - command line after the launcher-specific arguments
have been stripped out.</dd>
<dd><code>addShutdownHook</code> - should a shutdown hook be added to terminate
this service on shutdown. Tests should set this to false.</dd>
<dd><code>execute</code> - execute/wait for the service to stop.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an exit exception, which will have a status code of 0 if it worked</dd>
</dl>
</li>
</ul>
<a name="coreServiceLaunch-org.apache.hadoop.conf.Configuration-org.apache.hadoop.service.Service-java.util.List-boolean-boolean-">
<!-- -->
</a><a name="coreServiceLaunch-org.apache.hadoop.conf.Configuration-S-java.util.List-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>coreServiceLaunch</h4>
<pre>protected&nbsp;int&nbsp;coreServiceLaunch(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html" title="type parameter in ServiceLauncher">S</a>&nbsp;instance,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;processedArgs,
boolean&nbsp;addShutdownHook,
boolean&nbsp;execute)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Launch the service.
All exceptions that occur are propagated upwards.
If the method returns a status code, it means that it got as far starting
the service, and if it implements <a href="../../../../../org/apache/hadoop/service/launcher/LaunchableService.html" title="interface in org.apache.hadoop.service.launcher"><code>LaunchableService</code></a>, that the
method <a href="../../../../../org/apache/hadoop/service/launcher/LaunchableService.html#execute--"><code>LaunchableService.execute()</code></a> has completed.
After this method returns, the service can be retrieved returned by
<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#getService--"><code>getService()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration</dd>
<dd><code>instance</code> - optional instance of the service.</dd>
<dd><code>processedArgs</code> - arguments after the configuration parameters
have been stripped out.</dd>
<dd><code>addShutdownHook</code> - should a shutdown hook be added to terminate
this service on shutdown. Tests should set this to false.</dd>
<dd><code>execute</code> - execute/wait for the service to stop</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code> - classname not on the classpath</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a></code> - not allowed at the class</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InstantiationException.html?is-external=true" title="class or interface in java.lang">InstantiationException</a></code> - not allowed to instantiate it</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code> - thread interrupted</dd>
<dd><code>ExitUtil.ExitException</code> - any exception defining the status code.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code> - any other failure -if it implements
<a href="../../../../../org/apache/hadoop/util/ExitCodeProvider.html" title="interface in org.apache.hadoop.util"><code>ExitCodeProvider</code></a> then it defines the exit code for any
containing exception</dd>
</dl>
</li>
</ul>
<a name="instantiateService-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>instantiateService</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/service/Service.html" title="interface in org.apache.hadoop.service">Service</a>&nbsp;instantiateService(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf)</pre>
<div class="block">Instantiate the service defined in <code>serviceClassName</code>.
Sets the <code>configuration</code> field
to the the value of <code>conf</code>,
and the <code>service</code> field to the service created.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration to use</dd>
</dl>
</li>
</ul>
<a name="convertToExitException-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertToExitException</h4>
<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a>&nbsp;convertToExitException(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;thrown)</pre>
<div class="block">Convert an exception to an <code>ExitException</code>.
This process may just be a simple pass through, otherwise a new
exception is created with an exit code, the text of the supplied
exception, and the supplied exception as an inner cause.
<ol>
<li>If is already the right type, pass it through.</li>
<li>If it implements <a href="../../../../../org/apache/hadoop/util/ExitCodeProvider.html#getExitCode--"><code>ExitCodeProvider.getExitCode()</code></a>,
the exit code is extracted and used in the new exception.</li>
<li>Otherwise, the exit code
<a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_EXCEPTION_THROWN"><code>LauncherExitCodes.EXIT_EXCEPTION_THROWN</code></a> is used.</li>
</ol></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>thrown</code> - the exception thrown</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <code>ExitException</code> with a status code</dd>
</dl>
</li>
</ul>
<a name="serviceCreationFailure-java.lang.Exception-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serviceCreationFailure</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/service/launcher/ServiceLaunchException.html" title="class in org.apache.hadoop.service.launcher">ServiceLaunchException</a>&nbsp;serviceCreationFailure(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;exception)</pre>
<div class="block">Generate an exception announcing a failure to create the service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exception</code> - inner exception.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new exception, with the exit code
<a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_SERVICE_CREATION_FAILURE"><code>LauncherExitCodes.EXIT_SERVICE_CREATION_FAILURE</code></a></dd>
</dl>
</li>
</ul>
<a name="registerFailureHandling--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerFailureHandling</h4>
<pre>protected&nbsp;void&nbsp;registerFailureHandling()</pre>
<div class="block">Override point: register this class as the handler for the control-C
and SIGINT interrupts.
Subclasses can extend this with extra operations, such as
an exception handler:
<pre>
Thread.setDefaultUncaughtExceptionHandler(
new YarnUncaughtExceptionHandler());
</pre></div>
</li>
</ul>
<a name="uncaughtException-java.lang.Thread-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uncaughtException</h4>
<pre>public&nbsp;void&nbsp;uncaughtException(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;thread,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;exception)</pre>
<div class="block">Handler for uncaught exceptions: terminate the service.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true#uncaughtException-java.lang.Thread-java.lang.Throwable-" title="class or interface in java.lang">uncaughtException</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>thread</code> - thread</dd>
<dd><code>exception</code> - exception</dd>
</dl>
</li>
</ul>
<a name="getServiceName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getServiceName</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getServiceName()</pre>
<div class="block">Get the service name via <a href="../../../../../org/apache/hadoop/service/Service.html#getName--"><code>Service.getName()</code></a>.
If the service is not instantiated, the classname is returned instead.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the service name</dd>
</dl>
</li>
</ul>
<a name="warn-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>warn</h4>
<pre>protected&nbsp;void&nbsp;warn(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;text)</pre>
<div class="block">Print a warning message.
<p>
This tries to log to the log's warn() operation.
If the log at that level is disabled it logs to system error</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>text</code> - warning text</dd>
</dl>
</li>
</ul>
<a name="error-java.lang.String-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>error</h4>
<pre>protected&nbsp;void&nbsp;error(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;thrown)</pre>
<div class="block">Report an error.
<p>
This tries to log to <code>LOG.error()</code>.
<p>
If that log level is disabled disabled the message
is logged to system error along with <code>thrown.toString()</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>message</code> - message for the user</dd>
<dd><code>thrown</code> - the exception thrown</dd>
</dl>
</li>
</ul>
<a name="exit-int-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exit</h4>
<pre>protected&nbsp;void&nbsp;exit(int&nbsp;exitCode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
<div class="block">Exit the JVM.
This is method can be overridden for testing, throwing an
exception instead. Any subclassed method MUST raise an
<code>ExitException</code> instance/subclass.
The service launcher code assumes that after this method is invoked,
no other code in the same method is called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exitCode</code> - code to exit</dd>
</dl>
</li>
</ul>
<a name="exit-org.apache.hadoop.util.ExitUtil.ExitException-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exit</h4>
<pre>protected&nbsp;void&nbsp;exit(<a href="../../../../../org/apache/hadoop/util/ExitUtil.ExitException.html" title="class in org.apache.hadoop.util">ExitUtil.ExitException</a>&nbsp;ee)</pre>
<div class="block">Exit the JVM using an exception for the exit code and message,
invoking <code>ExitUtil.terminate(ExitUtil.ExitException)</code>.
This is the standard way a launched service exits.
An error code of 0 means success -nothing is printed.
If <code>ExitUtil.disableSystemExit()</code> has been called, this
method will throw the exception.
The method <i>may</i> be subclassed for testing</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ee</code> - exit exception</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>ExitUtil.ExitException</code> - if ExitUtil exceptions are disabled</dd>
</dl>
</li>
</ul>
<a name="getClassLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassLoader</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;getClassLoader()</pre>
<div class="block">Override point: get the classloader to use.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the classloader for loading a service class.</dd>
</dl>
</li>
</ul>
<a name="extractCommandOptions-org.apache.hadoop.conf.Configuration-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>extractCommandOptions</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;extractCommandOptions(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
<div class="block">Extract the command options and apply them to the configuration,
building an array of processed arguments to hand down to the service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration to update.</dd>
<dd><code>args</code> - main arguments. <code>args[0]</code>is assumed to be
the service classname and is skipped.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the remaining arguments</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>ExitUtil.ExitException</code> - if JVM exiting is disabled.</dd>
</dl>
</li>
</ul>
<a name="parseCommandArgs-org.apache.hadoop.conf.Configuration-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>parseCommandArgs</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parseCommandArgs(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
<div class="block">Parse the command arguments, extracting the service class as the last
element of the list (after extracting all the rest).
The field <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#commandOptions"><code>commandOptions</code></a> field must already have been set.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - configuration to use</dd>
<dd><code>args</code> - command line argument list</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the remaining arguments</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLaunchException.html" title="class in org.apache.hadoop.service.launcher">ServiceLaunchException</a></code> - if processing of arguments failed</dd>
</dl>
</li>
</ul>
<a name="createGenericOptionsParser-org.apache.hadoop.conf.Configuration-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createGenericOptionsParser</h4>
<pre>protected&nbsp;org.apache.hadoop.util.GenericOptionsParser&nbsp;createGenericOptionsParser(<a href="../../../../../org/apache/hadoop/conf/Configuration.html" title="class in org.apache.hadoop.conf">Configuration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;argArray)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Override point: create a generic options parser or subclass thereof.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - Hadoop configuration</dd>
<dd><code>argArray</code> - array of arguments</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a generic options parser to parse the arguments</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on any failure</dd>
</dl>
</li>
</ul>
<a name="verifyConfigurationFilesExist-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>verifyConfigurationFilesExist</h4>
<pre>protected&nbsp;void&nbsp;verifyConfigurationFilesExist(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;filenames)</pre>
<div class="block">Verify that all the specified filenames exist.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filenames</code> - a list of files</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLaunchException.html" title="class in org.apache.hadoop.service.launcher">ServiceLaunchException</a></code> - if a file is not found</dd>
</dl>
</li>
</ul>
<a name="startupShutdownMessage-java.lang.String-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startupShutdownMessage</h4>
<pre>protected static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;startupShutdownMessage(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;classname,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
<div class="block">Build a log message for starting up and shutting down.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>classname</code> - the class of the server</dd>
<dd><code>args</code> - arguments</dd>
</dl>
</li>
</ul>
<a name="exitWithMessage-int-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exitWithMessage</h4>
<pre>protected static&nbsp;void&nbsp;exitWithMessage(int&nbsp;status,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
<div class="block">Exit with a printed message.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>status</code> - status code</dd>
<dd><code>message</code> - message message to print before exiting</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>ExitUtil.ExitException</code> - if exceptions are disabled</dd>
</dl>
</li>
</ul>
<a name="exitWithUsageMessage--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exitWithUsageMessage</h4>
<pre>protected static&nbsp;void&nbsp;exitWithUsageMessage()</pre>
<div class="block">Exit with the usage exit code <a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html#EXIT_USAGE"><code>LauncherExitCodes.EXIT_USAGE</code></a>
and message <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#USAGE_MESSAGE"><code>USAGE_MESSAGE</code></a>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>ExitUtil.ExitException</code> - if exceptions are disabled</dd>
</dl>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
<div class="block">This is the JVM entry point for the service launcher.
Converts the arguments to a list, then invokes <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceMain-java.util.List-"><code>serviceMain(List)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>args</code> - command line arguments.</dd>
</dl>
</li>
</ul>
<a name="serviceMain-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serviceMain</h4>
<pre>public static&nbsp;void&nbsp;serviceMain(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</pre>
<div class="block">Varargs version of the entry point for testing and other in-JVM use.
Hands off to <a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.html#serviceMain-java.util.List-"><code>serviceMain(List)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>args</code> - command line arguments.</dd>
</dl>
</li>
</ul>
<a name="serviceMain-java.util.List-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>serviceMain</h4>
<pre>public static&nbsp;void&nbsp;serviceMain(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;argsList)</pre>
<div class="block">The real main function, which takes the arguments as a list.
Argument 0 MUST be the service classname</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>argsList</code> - the list of arguments</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ServiceLauncher.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/service/launcher/LauncherExitCodes.html" title="interface in org.apache.hadoop.service.launcher"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/service/launcher/ServiceLauncher.MinimalGenericOptionsParser.html" title="class in org.apache.hadoop.service.launcher"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/service/launcher/ServiceLauncher.html" target="_top">Frames</a></li>
<li><a href="ServiceLauncher.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>