我可以知道如何通过.ebextension将主管安装到Elastic Beanstalk中吗?以及如何通过.ebextension执行主管命令?
最佳答案
Supervisorctl和supervisor已存在于/usr/local/bin目录中的elasticbeanstalk实例上。您可以使用ebextensions加载主管配置文件并以守护程序模式运行主管。
在您的.ebextensions文件夹中,创建一个文件002_supervisor.config
。
该文件执行3件事:
文件:
/usr/local/etc/supervisord.conf:
模式:“000755”
所有者:root
组:根
内容:
[unix_http_server]
file =/tmp/supervisor.sock; (套接字文件的路径)
[主管]
logfile =/tmp/supervisord.log; (主日志文件;默认$ CWD/supervisord.log)
logfile_maxbytes = 50MB; (最大主日志文件字节b4轮换;默认50MB)
logfile_backups = 10; (主日志文件轮换备份的数量;默认为10)
loglevel = info; (日志级别;默认信息;其他:调试,警告,跟踪)
pidfile =/tmp/supervisord.pid; (supervisord pidfile;默认supervisord.pid)
nodaemon = false; (如果为true,则从前台开始;默认为false)
minfds = 1024; (最小可用启动文件描述符;默认为1024)
minprocs = 200; (最小可用进程描述符;默认为200)
[rpcinterface:主管]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[主管]
serverurl = unix:///tmp/supervisor.sock;使用unix://URL作为unix套接字
[包括]
文件=/usr/local/etc/*.conf
[inet_http_server]
端口= 127.0.0.1:9001
/etc/init.d/supervisord:
模式:“000755”
所有者:root
组:根
内容:
#!/bin/bash
#源函数库
。/etc/rc.d/init.d/functions
#源系统设置
如果[-f/etc/sysconfig/supervisord];然后
。/etc/sysconfig/supervisord
科幻
#supervisorctl脚本的路径,服务器二进制文件,
#和消息的简写形式。
administratorctl =/usr/local/bin/supervisorctl
super 用户= $ {SUPERVISORD-/usr/local/bin/supervisord}
prog =主管
pidfile = $ {PIDFILE-/tmp/supervisord.pid}
lockfile = $ {LOCKFILE-/var/lock/subsys/supervisord}
STOP_TIMEOUT = $ {STOP_TIMEOUT-60}
OPTIONS =“$ {OPTIONS--c/usr/local/etc/supervisord.conf}”
RETVAL = 0
开始() {
echo -n $“启动$ prog:”
守护程序--pidfile = $ {pidfile} $ supervisord $ OPTIONS
RETVAL = $?
回声
如果[$ RETVAL -eq 0];然后
触摸$ {lockfile}
$ supervisorctl $ OPTIONS状态
科幻
返回$ RETVAL
}
停止() {
echo -n $“停止$ prog:”
killproc -p $ {pidfile} -d $ {STOP_TIMEOUT} $ supervisord
RETVAL = $?
回声
[$ RETVAL -eq 0] && rm -rf $ {lockfile} $ {pidfile}
}
reload(){
echo -n $“重新加载$ prog:”
LSB = 1 killproc -p $ pidfile $ supervisord -HUP
RETVAL = $?
回声
如果[$ RETVAL -eq 7];然后
失败$“$ prog重新加载”
别的
$ supervisorctl $ OPTIONS状态
科幻
}
重新开始() {
停止
开始
}
案例“$ 1”在
开始)
开始
;;
停止)
停止
;;
地位)
状态-p $ {pidfile} $ supervisord
RETVAL = $?
[$ RETVAL -eq 0] && $ supervisorctl $ OPTIONS状态
;;
重新开始)
重新开始
;;
condrestart |尝试重新启动)
如果status -p $ {pidfile} $ supervisord>&/dev/null;然后
停止
开始
科幻
;;
强制重载|重载)
重装
;;
*)
echo $“用法:$ prog {开始|停止|重新启动| condrestart |尝试重新启动|强制重新加载|重新加载}”
RETVAL = 2
埃萨克
退出$ RETVAL
命令:
01_start_supervisor:
命令:“/etc/init.d/supervisord restart”
leader_only:是
希望这可以帮助!
关于amazon-web-services - 如何通过.ebextension在Elastic Beanstalk中安装主管?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46712166/