type=page
status=published
title=stop-local-instance
next=undeploy.html
prev=stop-instance.html
~~~~~~

= stop-local-instance

[[stop-local-instance-1]][[GSRFM00242]][[stop-local-instance]]

== stop-local-instance

Stops a {productName} instance on the machine where the subcommand is run

[[sthref2181]]

=== Synopsis

[source]
----
asadmin [asadmin-options] stop-local-instance [--help]
[--nodedir node-dir] [--node node]
[--force={true|false}] [--kill={false|true}]
[instance-name]
----

[[sthref2182]]

=== Description

The `stop-local-instance` subcommand stops a {productName} instance
on the machine where the subcommand is run. This subcommand does not
require secure shell (SSH) to be configured. You must run this command
from the machine where the instance resides.

The subcommand can stop any {productName} instance, regardless of
how the instance was created. For example, this subcommand can stop an
instance that was created by using the
link:create-instance.html#create-instance-1[`create-instance`(1)] subcommand.

The `stop-local-instance` subcommand does not contact the DAS to
determine the node on which the instance resides. To determine the node
on which the instance resides, the subcommand searches the directory
that contains the node directories. If multiple node directories exist,
the node must be specified as an option of the subcommand.

This subcommand is supported in local mode.

[[sthref2183]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--nodedir`::
  Specifies the directory that contains the instance's node directory.
  The instance's files are stored in the instance's node directory. The
  default is as-install``/nodes``.
`--node`::
  Specifies the node on which the instance resides. This option may be
  omitted only if the directory that the `--nodedir` option specifies
  contains only one node directory. Otherwise, this option is required.
`--force`::
  Specifies whether the instance is forcibly stopped immediately. +
  Possible values are as follows:

  `true`;;
    The instance is forcibly stopped immediately (default).
  `false`;;
    The subcommand waits until all threads that are associated with the
    instance are exited before stopping the instance.

`--kill`::
  Specifies whether the instance is killed by using functionality of the
  operating system to terminate the instance process. +
  Possible values are as follows:

  `false`;;
    The instance is not killed. The subcommand uses functionality of the
    Java platform to terminate the instance process (default).
  `true`;;
    The instance is killed. The subcommand uses functionality of the
    operating system to terminate the instance process.

[[sthref2184]]

=== Operands

instance-name::
  The name of the instance to stop.

[[sthref2185]]

=== Examples

[[GSRFM768]][[sthref2186]]

==== Example 1   Stopping an Instance Locally

This example stops the instance `yml-i-sj01` on the machine where the
subcommand is run.

[source]
----
asadmin> stop-local-instance --node sj01 yml-i-sj01
Waiting for the instance to stop ...
Command stop-local-instance executed successfully.
----

[[sthref2187]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref2188]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-instance.html#create-instance-1[`create-instance`(1)],
link:create-local-instance.html#create-local-instance-1[`create-local-instance`(1)],
link:delete-instance.html#delete-instance-1[`delete-instance`(1)],
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)],
link:start-instance.html#start-instance-1[`start-instance`(1)],
link:start-local-instance.html#start-local-instance-1[`start-local-instance`(1)],
link:stop-instance.html#stop-instance-1[`stop-instance`(1)]


