Supervisor
一个client/server系统,用来控制一系列进程在UNIX-like操作系统上
supervisord(server):响应client端的命令,控制进程启动,停止,监控进程,重新启动崩溃或退出的进程,记录进程日志,生成并处理进程生命周期中的点事件。supervisord使用一个配置文件,通常是/etc/supervisord.conf 里面是一些配置信息。
supervisorctl(client):类似于命令行,向server端发送用户需要的控制命令
server与client通信通过socket通信。
Apollo中supervisor组件的应用
supervisor组件的安装,在docker/build/installers/install_supervisor.sh
# Fail on first error.
set -e
apt-get install -y supervisor
# Add supervisord config file
echo_supervisord_conf > /etc/supervisord.conf
server端
通过查看进程可以看到supervisord已经启动,并且配置文件是/apollo/modules/tools/supervisord/dev.conf
ubuntu@in_dev_docker:/apollo$ ps aux | grep supervisor
root 193 0.2 0.0 49900 14312 ? Ss 10:29 0:02 /usr/bin/python /usr/local/bin/supervisord -c /apollo/modules/tools/supervisord/dev.conf
启动 : 在scripts/bootstrap.sh 中
# Setup supervisord.
if [ "$HOSTNAME" == "in_release_docker" ]; then
supervisord -c /apollo/modules/tools/supervisord/release.conf >& /tmp/supervisord.start.log
echo "Started supervisord with release conf"
else

本文介绍了Apollo中Supervisor组件的详细应用,包括它作为一个client/server系统在UNIX-like操作系统上控制进程的功能。supervisord作为server端负责进程管理,而supervisorctl作为client端则用于发送控制命令。在Apollo中,server端通过配置文件启动并监控进程,client端如dreamview和monitor由supervisorctl控制。此外,文章还列举了supervisor的常见命令,如查看进程状态和日志,强调在dreamview上操作更为推荐。
最低0.47元/天 解锁文章
1693

被折叠的 条评论
为什么被折叠?



