2.2. 停止 Apache Karaf

您可以从控制台内或使用 stop 脚本停止 Apache Karaf 实例。

2.2.1. 从本地控制台停止实例

如果您通过运行 fusefuse 客户端 启动 Karaf 实例,您可以在 karaf > 提示符下执行以下操作之一来停止它:

  • 类型 关闭
  • Ctrl+D

2.2.2. 停止在服务器模式下运行的实例

您可以通过调用 InstallDir/bin 目录中的 stop (.bat) 来停止本地运行 Karaf 实例(root 容器),如下所示:

Windows

bin\stop.bat

Linux/UNIX

./bin/stop

Karaf stop 脚本调用的关闭机制与 Apache Tomcat 中实施的关闭机制类似。Karaf 服务器打开专用关闭端口(与 SSH 端口相同),以接收关闭通知。默认情况下,会随机选择关闭端口,但如果您愿意,您可以将它配置为使用特定端口。

您可以通过在 InstallDir/etc/config.properties 文件中设置以下属性来自定义关闭端口:

karaf.shutdown.port

指定用作关闭端口的 TCP 端口。将此属性设置为 -1 可禁用端口。默认为 0 ( 用于随机端口)。

注意

如果要使用 bin/stop 脚本关闭远程主机上运行的 Karaf 服务器,则需要将此属性设置为与远程主机的关闭端口相等。但请注意,此设置也会影响位于与 etc/config.properties 文件相同的主机上的 Karaf 服务器。

karaf.shutdown.host

指定关闭端口绑定到的主机名。此设置对于多主目录主机非常有用。默认为 localhost

注意

如果要使用 bin/stop 脚本关闭远程主机上运行的 Karaf 服务器,则需要将此属性设置为远程主机的主机名(或 IP 地址)。但请注意,此设置也会影响位于与 etc/config.properties 文件相同的主机上的 Karaf 服务器。

karaf.shutdown.port.file
在 Karaf 实例启动后,它会将当前关闭端口写入此属性指定的文件中。stop 脚本读取此属性指定的文件,以发现当前关闭端口的值。默认为 ${karaf.data}/port
karaf.shutdown.command

指定必须发送到关闭端口的 UUID 值,才能触发关闭。这提供了元素级别的安全性,只要 UUID 值保留了一个 secret。例如,etc/config.properties 文件可以被读取保护,以防止常规用户读取这个值。

当 Apache Karaf 首次启动时,会自动生成随机 UUID 值,并将此设置写入 etc/config.properties 文件的末尾。或者,如果已经设置了 karaf.shutdown.command,则 Karaf 服务器将使用预先存在的 UUID 值(如果需要,您可以自定义 UUID 设置)。

注意

如果要使用 bin/stop 脚本关闭在远程主机上运行的 Karaf 服务器,则需要将此属性设置为等于远程主机 karaf.shutdown.command 的值。但请注意,此设置也会影响位于与 etc/config.properties 文件相同的主机上的 Karaf 服务器。

2.2.3. 停止远程实例

您可以停止在远程主机上运行的容器实例,如 第 17.3 节 “停止远程容器” 所述。