如何在 Linux (Ubuntu) 上自动启动 supervisord

38 linux python daemon supervisord

Supervisord 不附带初始化脚本或不指示如何自动启动它,即。重启后。我尝试了一些用户提供的 /etc/init.d 脚本,但它们都失败了。

什么是首选的解决方案?

小智 40

实际上,我在这里找到了一个http://gist.github.com/176149。要安装它:

sudo curl https://gist.github.com/howthebodyworks/176149/raw/88d0d68c4af22a7474ad1d011659ea2d27e35b8d/supervisord.sh > /etc/init.d/supervisord
Run Code Online (Sandbox Code Playgroud)

运行它

sudo chmod +x /etc/init.d/supervisord
Run Code Online (Sandbox Code Playgroud)

并自动安排它,做

sudo update-rc.d supervisord defaults
Run Code Online (Sandbox Code Playgroud)

确保 /etc/supervisord.conf 中的正确 pid 映射到 /etc/init.d/supervisord

example: pidfile=/var/run/supervisord.pid
Run Code Online (Sandbox Code Playgroud)

停止和启动工作正常

service supervisord stop
service supervisord start
Run Code Online (Sandbox Code Playgroud)

  • @RichVel 这是一个 alpha 版本,其中有很多错误。也许它们中的大多数不会影响您的系统,但您不能确定,而且没有最新版本可能会随时困扰您。检查源代码库,您会看到 3.0a8 和 3.0b2 版本之间有 320 多个提交 https://github.com/Supervisor/supervisor/compare/3.0a8...3.0b2 (2认同)

小智 13

我为 ubuntu 9.10 创建了一个新贵脚本

例如,我将 supervisor 安装到虚拟环境中,然后从 upstart 启动和控制 supervisor。

创建一个文本文件 /etc/init/supervisord.conf

内容是:

description     "supervisord"

start on runlevel [345]
stop on runlevel [!345]

expect fork
respawn

exec /misc/home/bkc/Python_Environments/java2/supervisord/bin/supervisord -c /misc/home/bkc/Python_Environments/java2/supervisord/work/supervisord.conf
Run Code Online (Sandbox Code Playgroud)

它会在启动时自动启动主管。要在创建 .conf 文件后手动启动,请使用

须藤启动supervisord

要手动停止服务,请使用

须藤停止监督

  • 在运行它们之前,请务必检查 gist one-liners。这个很好,但我只是想补充一点。 (3认同)
  • 谢谢!这是一个单行:`curl -L https://gist.github.com/raw/1213031/929e578faae2ad3bcb29b03d116bcb09e1932221/sup‌ ervisord.conf > /etc/init/supervisord.conf && start be supervisord`(你需要根) (2认同)

Pet*_*ist 12

这是我在 RHEL 5.4 和 CentOS 5.5 上使用的

我不确定它是否取决于我的 supervisord.conf 中的一些配置设置。但它似乎工作正常。

安装后需要运行以下命令

chkconfig --add supervisord
Run Code Online (Sandbox Code Playgroud)

[/etc/rc.d/init.d/supervisord]

#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord

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

prog="supervisord"

prefix="/usr/"
exec_prefix="${prefix}"
prog_bin="${exec_prefix}/bin/supervisord"
PIDFILE="/var/run/$prog.pid"

start()
{
        echo -n $"Starting $prog: "
        daemon $prog_bin --pidfile $PIDFILE
        [ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
        echo
}

stop()
{
        echo -n $"Shutting down $prog: "
        [ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
        echo
}

case "$1" in

  start)
    start
  ;;

  stop)
    stop
  ;;

  status)
        status $prog
  ;;

  restart)
    stop
    start
  ;;

  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;

esac
Run Code Online (Sandbox Code Playgroud)


Mik*_*bov 5

官方 Supervisor GitHub 存储库中有一个 Debian/Ubuntu 脚本:

https://github.com/Supervisor/initscripts/blob/master/debian-norrgard

  • 是的 - 它已全部移至 GitHub:https://github.com/Supervisor/initscripts (4认同)