标签: upstart

我如何在 upstart、runit、supervisor、daemontools、... 之间进行选择,以便在进程终止时重新启动进程?(过程监督/监控)

我有一个 Nginx 网络代理、gunicorn 网络服务器和一个 python/flask 网络应用程序。Gunicorn 进程显然已经死了,我想在未来通过研究一种实用程序来改善这一点,该实用程序可以在 gunicorn 进程再次崩溃时监控并重新启动它。

我发现了几个可以完成这项工作的流程监督实用程序:

  • 守护进程
  • 启动
  • 运行
  • s6
  • 导师
  • 系统D
  • 暴发户
  • ...

是否有一篇综合文章比较和对比了用于监视和重新启动进程的各种实用程序?

https://en.wikipedia.org/wiki/Process_supervision

upstart daemontools supervisord runit

13
推荐指数
1
解决办法
5856
查看次数

暴发户看不到我的工作

在 Ubuntu 12.10 中

user@xyz:~$ sudo initctl --version
initctl (upstart 1.5)
Copyright (C) 2012 Scott James Remnant, Canonical Ltd.

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
user@xyz:~$ ls -l /etc/init/rs-comm.conf
-rw-r--r-- 1 root root 349 ????. 15 03:22 /etc/init/rs-comm.conf
user@xyz:~$ sudo initctl reload-configuration
user@xyz:~$ sudo initctl start rs-comm
initctl: Unknown job: rs-comm
Run Code Online (Sandbox Code Playgroud)

linux ubuntu upstart ubuntu-12.10

12
推荐指数
1
解决办法
1万
查看次数

Upstart : 在非 upstart 进程后启动服务

在 Ubuntu 10.04 上,我需要使用 upstart 启动我的服务,但前提是 mysql 启动并运行。

问题是 mysql 本身不是由 upstart 处理的,所以我不能使用“启动”功能。

我能做什么 ?

linux ubuntu service process upstart

11
推荐指数
1
解决办法
6628
查看次数

用于启动我的应用服务器的 systemd 脚本 - “Unit”部分中的未知左值“StartLimitIntervalSec”

我有一个如下所示的新贵配置文件,它在 Ubuntu 14 中运行良好:

#/etc/init/data_server.conf
#sudo start data_server
#sudo stop data_server
#sudo status data_server

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/hold/data_server
respawn

post-start script
    echo "data server started at `date +"%F %T"` on `hostname -f`" | mailx -r "abc@host.com" -s "data server Started" "pqr@host.com"
end script

post-stop script
  sleep 30
end script

limit core unlimited unlimited
limit nofile 100000 100000
setuid goldy
exec ./proc_server --init_file=../config/tree.init --port=8080 --dir=/data/hold/ --max_sec=2400 --max_mb=100 --active=5
Run Code Online (Sandbox Code Playgroud)

现在我们正在迁移到 Ubuntu 16,所以我们不能使用upstart,看起来我们需要在systemd这里使用。我必须确保每当系统重新启动或应用程序被终止时,它应该 …

linux upstart systemd ubuntu-16.04

11
推荐指数
1
解决办法
2万
查看次数

upstart/initctl 使用什么信号来重新启动作业?

upstart/initctl使用什么信号来重新启动作业?此外,有什么方法可以指定应该使用 SIGHUP 吗?

或者,有没有办法定义reload将发送 SIGHUP的自定义命令?或者我需要去外面upstart这样做吗?

upstart

10
推荐指数
1
解决办法
6415
查看次数

使用 Upstart 管理 AutoSSH 反向隧道

我正在使用 upstart 通过 autossh 管理反向 SSH 隧道。当我执行“sudo start tunnel”时,连接正常;但是,当网络服务启动时,该命令不会自动运行,无论我如何更改“启动”属性,我似乎都无法让它以自动方式运行。

但是,就像我说的,我可以很好地启动/停止它。

这是我的 /etc/init/tunnel.conf,去掉了敏感内容:

description "SSH Tunnel"

start on started networking
stop on stopping networking

respawn

env DISPLAY=:0.0

exec autossh -nNT -R 22100:localhost:22 myuser@myserver.com -p 2201
Run Code Online (Sandbox Code Playgroud)

linux ssh init upstart ubuntu-10.04

10
推荐指数
1
解决办法
4853
查看次数

永久禁用初始化服务

我刚刚配置了一个运行 CentOS 6 的新 VPS,它与 Apache 一起提供。

我想禁用 Apache,因为我将使用 Nginx。

我知道我可以删除 /etc/init.d/ 中的脚本,但我不想这样做,因为它是系统附带的一个库存。我宁愿有一种优雅的方式来禁用该服务。

我以为我可以在 /etc/inittab 中放一些东西,但 inittab 包含:

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init. …
Run Code Online (Sandbox Code Playgroud)

httpd centos init upstart

10
推荐指数
2
解决办法
1万
查看次数

如何通过 upstart 启动 nginx?

背景:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"
Run Code Online (Sandbox Code Playgroud)

我已经构建了 nginx,我想使用 upstart 来启动它:

来自该站点的 nginx 新贵脚本:

description "nginx http daemon"

start on runlevel 2

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

console owner

exec /usr/sbin/nginx -c /etc/nginx/nginx.conf  -g "daemon off;"

respawn
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 initctl 运行它时,我得到了“未知工作”,我刚刚了解到这显然意味着存在错误,(用“错误”来描述错误有什么问题?)

有人可以指出我正确的方向吗?我已经阅读了文档,就像它一样,对于 SysV init 替代品来说,它似乎有点稀疏......但是只要将这个工作添加到列表中,运行它,然后继续我的生活。 .. 有小费吗?

编辑:initctl 版本 init(新贵 0.6.5)

ubuntu upstart ubuntu-10.04

9
推荐指数
2
解决办法
2万
查看次数

在启动时运行 Upstart 用户作业

我正在运行 Ubuntu 服务器 11.04。我已经按照此处所述创建了一个 Upstart 用户作业。

我有以下文件/home/myuser/.init/sensors.conf

start on started mysql
stop on stopping mysql


chdir /home/myuser/mydir/project
exec /home/myuser/mydir/env/bin/python /home/myuser/mydir/project/manage.py sensors

respawn

respawn limit 10 90
Run Code Online (Sandbox Code Playgroud)

因为myuser我可以正常启动、停止和重新加载工作 - 它运行良好:

$ start sensors
sensors start/running, process 1332
$ stop sensors
sensors stop/waiting
Run Code Online (Sandbox Code Playgroud)

问题是作业在启动时不会在启动时自动mysql启动。重新启动后,mysql正在运行,但我的sensors工作不是。

奇怪的是,虽然工作不是在启动时开始,但如果我sudo用来重新启动mysql它确实开始了我的工作。以下命令myuser从全新启动时运行:

$ status sensors
sensors stop/waiting
$ sudo restart mysql
mysql start/running, process 1209
$ status sensors
sensors start/running, process …
Run Code Online (Sandbox Code Playgroud)

ubuntu upstart

8
推荐指数
1
解决办法
6666
查看次数

如何使用 upstart 定义不同的停止/重启信号

我开始将我们所有的系统转换为使用 upstart 来管理我们的各种应用程序流程。我经常缺少的一件事是能够向进程stoprestart事件发送不同的信号。

例如,我们使用Unicorn运行我们的 Web 进程。Unicorn 有一个很棒的信号处理 API。当我想优雅地重新加载进程时,我向主 pid 发送一个 USR2 信号。为了优雅地关闭它们,我发送了一个 QUIT 命令。TERM(新贵的默认停止信号)构成立即关闭。

另一个例子是使用Resque。为了优雅地关闭一个工人,我向它发送 QUIT 信号。TERM 信号再次导致立即关闭,无论工人的孩子是否被分叉。

新贵是否支持自定义信号?我似乎在任何地方都找不到它,这让我担心我正在使用“错误的工作工具”。

upstart ubuntu-10.04 unicorn

8
推荐指数
2
解决办法
5653
查看次数