控制 Glance 服务器¶
本节描述了启动、停止和重新加载 Glance 服务器程序的方法。
启动服务器¶
启动 Glance 服务器有两种方法
手动调用服务器程序
使用
glance-control服务器守护进程包装程序
我们建议使用第二种方法。
手动启动服务器¶
第一种方法是直接调用服务器程序,传入命令行选项和一个用于配置服务器应用程序的 paste.deploy 配置文件作为参数。
注意
Glance 附带一个 etc/ 目录,其中包含示例 paste.deploy 配置文件,您可以将其复制到标准配置目录并根据自己的需要进行调整。特别是,bind_host 必须正确设置。
如果您在命令行中 没有 指定配置文件,Glance 将尽力在以下目录之一中找到配置文件,并在找到第一个配置文件时停止
$CWD~/.glance~//etc/glance/etc
搜索的文件名取决于服务器应用程序名称。因此,如果您正在启动 API 服务器,将搜索 glance-api.conf。
如果未找到配置文件,您将看到一个错误,例如
$ glance-api
ERROR: Unable to locate any configuration file. Cannot load application glance-api
这是一个示例,显示了如何在 shell 中手动启动 glance-api 服务器。
$ sudo glance-api --config-file glance-api.conf --debug &
jsuh@mc-ats1:~$ 2011-04-13 14:50:12 DEBUG [glance-api] ********************************************************************************
2011-04-13 14:50:12 DEBUG [glance-api] Configuration options gathered from config file:
2011-04-13 14:50:12 DEBUG [glance-api] /home/jsuh/glance-api.conf
2011-04-13 14:50:12 DEBUG [glance-api] ================================================
2011-04-13 14:50:12 DEBUG [glance-api] bind_host 65.114.169.29
2011-04-13 14:50:12 DEBUG [glance-api] bind_port 9292
2011-04-13 14:50:12 DEBUG [glance-api] debug True
2011-04-13 14:50:12 DEBUG [glance-api] default_store file
2011-04-13 14:50:12 DEBUG [glance-api] filesystem_store_datadir /home/jsuh/images/
2011-04-13 14:50:12 DEBUG [glance-api] ********************************************************************************
2011-04-13 14:50:12 DEBUG [routes.middleware] Initialized with method overriding = True, and path info altering = True
2011-04-13 14:50:12 DEBUG [eventlet.wsgi.server] (21354) wsgi starting up on http://65.114.169.29:9292/
$ ps aux | grep glance
root 20009 0.7 0.1 12744 9148 pts/1 S 12:47 0:00 /usr/bin/python /usr/bin/glance-api glance-api.conf --debug
jsuh 20017 0.0 0.0 3368 744 pts/1 S+ 12:47 0:00 grep glance
只需将配置文件作为参数传递给 --config-file 选项(上面的示例使用了 etc/glance-api.conf 示例配置文件),然后是您想要使用的任何其他选项。(--debug 在上面用于显示服务器启动时显示的一些调试输出。使用 --help 调用服务器程序以查看可以在命令行上指定的全部可用选项。)
有关通过 paste.deploy 配置文件配置服务器的更多信息,请参阅题为 配置 Glance 服务器 的章节
请注意,服务器在之前的示例中使用标准 shell 后台指示符 & 对自身进行 守护进程化。对于大多数用例,我们建议使用 glance-control 服务器守护进程包装程序进行守护进程化。有关使用 glance-control 进行守护进程化的更多详细信息,请参阅下文。
使用 glance-control 程序启动服务器¶
启动 Glance 服务器的第二种方法是使用 glance-control 程序。glance-control 是一个包装脚本,允许用户以更适合自动化和脚本编写的方式启动、停止、重新启动和重新加载其他 Glance 服务器程序。
通过 glance-control 程序启动的服务器始终被 守护进程化,这意味着服务器程序进程在后台运行。
要使用 glance-control 启动 Glance 服务器,只需调用 glance-control,后跟服务器和单词“start”,以及您希望提供的任何命令行选项。以以下方式使用 glance-control 启动服务器
$ sudo glance-control [OPTIONS] <SERVER> start [CONFPATH]
注意
您必须使用 sudo 程序来运行 glance-control,因为服务器程序的 pid 文件目前写入 /var/run/glance/。
这是一个示例,显示了如何使用 glance-control 包装脚本启动 glance-api 服务器。
$ sudo glance-control api start glance-api.conf
Starting glance-api with /home/jsuh/glance.conf
$ ps aux | grep glance
root 20038 4.0 0.1 12728 9116 ? Ss 12:51 0:00 /usr/bin/python /usr/bin/glance-api /home/jsuh/glance-api.conf
jsuh 20042 0.0 0.0 3368 744 pts/1 S+ 12:51 0:00 grep glance
与 glance-control 启动 Glance 服务器程序所使用的配置文件相同,并且您可以(如上面的示例所示)在启动服务器时指定配置文件。
为了使您启动的 glance 服务能够监视意外死亡并在必要时重新启动,请使用以下选项
$ sudo glance-control [service] start --respawn ...
请注意,这将导致 glance-control 本身保持运行。另请注意,故意停止的服务不会重新启动,快速跳动(进程死亡发生在上次启动后一秒内)的服务也不会重新启动。
默认情况下,使用 glance-control 启动时会丢弃 glance 服务的输出。为了通过 syslog 捕获此类输出,请使用以下选项
$ sudo glance-control --capture-output ...
停止服务器¶
如果您手动启动了 Glance 服务器并且没有使用 & 后台函数,只需通过键入 Ctrl-C 向服务器进程发送终止信号
如果您使用 glance-control 程序启动了 Glance 服务器,则可以使用 glance-control 程序停止它。只需执行以下操作
$ sudo glance-control <SERVER> stop
如本示例所示
$ sudo glance-control api stop
Stopping glance-api pid: 17602 signal: 15
重新启动服务器¶
您可以使用 glance-control 程序重新启动服务器,如下所示
$ sudo glance-control api restart etc/glance-api.conf
Stopping glance-api pid: 17611 signal: 15
Starting glance-api with /home/jpipes/repos/glance/trunk/etc/glance-api.conf
重新加载服务器¶
您可以使用 glance-control 程序重新加载服务器,如下所示
$ sudo glance-control api reload
Reloading glance-api (pid 18506) with signal(1)
重新加载会向主进程发送 SIGHUP 信号,并导致新的配置设置被提取,而不会中断正在运行的服务(前提是 bind_host 或 bind_port 没有更改)。