gpt4 book ai didi

amazon-web-services - 在 AWS AMI Linux 服务器上设置 Supervisord

转载 作者:行者123 更新时间:2023-12-03 11:48:37 27 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

2年前关闭。




Improve this question




我正在尝试让主管工作以确保我的队列系统始终在运行。

以下是我从各种来源拼凑起来的步骤:
(以 root 或 super 用户身份运行)

1)
$ easy_install 主管

2)
$ echo_supervisord_conf >/etc/supervisord.conf

3)
$ sudo vi supervisord.conf

4)
将以下内容粘贴到文件末尾:

command=/usr/bin/php/path/to/AppName/artisan --env=production --timeout=240 queue:listen

5)
$ supervisord -c/etc/supervisord.conf

6)
$supervisorctl

7)主管>状态

主管>

它不显示任何内容。

最佳答案

这是我采用的解决方案。 AWS AMI 包括用于安装 Python 应用程序的 pip。下面是设置命令:

$ sudo pip install supervisor
$ echo_supervisord_conf
$ sudo su -
$ echo_supervisord_conf > /etc/supervisord.conf

安装 supervisor 后,您需要手动构建启动脚本以打开和关闭服务。

这将因您的 Linux 发行版而异,Ubuntu 会在您安装时为您创建一个 init 脚本,其他发行版(如 AMI)不会。这是各种 Linux 发行版初始化脚本的绝佳资源:

https://github.com/Supervisor/initscripts

然后,您可以将 supervisor 添加到 chkconfig 以在系统重新启动时自动启动。

这是一个对我有用的:

小路
/etc/init.d/supervisord

AWS-AMI 或 RedHat Linux 的示例初始化脚本
#!/bin/bash
#
# supervisord Startup script for the Supervisor process control system
#
# Author: Mike McGrath <mmcgrath@redhat.com> (based off yumupdatesd)
# Jason Koppe <jkoppe@indeed.com> adjusted to read sysconfig,
# use supervisord tools to start/stop, conditionally wait
# for child processes to shutdown, and startup later
# Erwan Queffelec <erwan.queffelec@gmail.com>
# make script LSB-compliant
#
# chkconfig: 345 83 04
# description: Supervisor is a client/server system that allows \
# its users to monitor and control a number of processes on \
# UNIX-like operating systems.
# processname: supervisord
# config: /etc/supervisord.conf
# config: /etc/sysconfig/supervisord
# pidfile: /var/run/supervisord.pid
#
### BEGIN INIT INFO
# Provides: supervisord
# Required-Start: $all
# Required-Stop: $all
# Short-Description: start and stop Supervisor process control system
# Description: Supervisor is a client/server system that allows
# its users to monitor and control a number of processes on
# UNIX-like operating systems.
### END INIT INFO

# Source function library
. /etc/rc.d/init.d/functions

# Source system settings
if [ -f /etc/sysconfig/supervisord ]; then
. /etc/sysconfig/supervisord
fi

# Path to the supervisorctl script, server binary,
# and short-form for messages.
supervisorctl=/usr/local/bin/supervisorctl
supervisord=${SUPERVISORD-/usr/local/bin/supervisord}
prog=supervisord
pidfile=${PIDFILE-/tmp/supervisord.pid}
lockfile=${LOCKFILE-/var/lock/subsys/supervisord}
STOP_TIMEOUT=${STOP_TIMEOUT-60}
OPTIONS="${OPTIONS--c /etc/supervisord.conf}"
RETVAL=0

start() {
echo -n $"Starting $prog: "
daemon --pidfile=${pidfile} $supervisord $OPTIONS
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
touch ${lockfile}
$supervisorctl $OPTIONS status
fi
return $RETVAL
}

stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d ${STOP_TIMEOUT} $supervisord
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -rf ${lockfile} ${pidfile}
}

reload() {
echo -n $"Reloading $prog: "
LSB=1 killproc -p $pidfile $supervisord -HUP
RETVAL=$?
echo
if [ $RETVAL -eq 7 ]; then
failure $"$prog reload"
else
$supervisorctl $OPTIONS status
fi
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $supervisord
RETVAL=$?
[ $RETVAL -eq 0 ] && $supervisorctl $OPTIONS status
;;
restart)
restart
;;
condrestart|try-restart)
if status -p ${pidfile} $supervisord >&/dev/null; then
stop
start
fi
;;
force-reload|reload)
reload
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload}"
RETVAL=2
esac

exit $RETVAL

关闭并保存后,使其对所有用户都可执行:
chmod a+x /etc/init.d/supervisord

接下来您需要通过运行以下命令来确认 supervisord 进程实际上正在运行:
 ps -fe | grep supervisor

如果您没有看到/usr/bin/supervisord 作为正在运行的进程,那么您需要手动启动它:
sudo service supervisord start

Supervisord 需要在服务器重新启动时启动。这可以类似于在使用 chkconfig 重新启动后打开 apache 的方式来完成。

首先将它添加到chkconfig,你的启动进程列表
sudo chkconfig --add supervisord

然后告诉 chkconfig 开机后开启
sudo chkconfig supervisord on

关于amazon-web-services - 在 AWS AMI Linux 服务器上设置 Supervisord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com