问题标签 [runit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
53 浏览

bash - 如何将 3 个命令组合成一个进程供 runit 监控?

我编写了一个脚本,它使用 wget 命令从两个源中获取一组参数,将它们存储到一个变量中,然后根据检索到的参数执行视频转码过程。安装了 Runit 来监控进程。

问题是当我尝试停止进程时,runit 不知道只需要停止最后一个转码进程,因此它无法停止它。

如何将 bash 脚本中的所有命令组合为单个进程/应用程序?

命令如下:

0 投票
3 回答
3158 浏览

docker - 创建一个不会自动启动的 runit 服务

我正在开发一个基于 Phusion 的基础镜像构建的 Docker 容器,该容器需要仅按需启动许多服务。我希望这些服务保留为runit服务,我只是希望它们不会在启动时自动启动。

他们的文档中可以看出,您可以通过使用您的服务名称创建一个文件夹来轻松添加/etc/service服务,即:/etc/service/jboss. 接下来,您必须chmod +x在该服务目录中创建一个名为的文件,该文件run将执行您的服务的启动。

我怎样才能做到这一点并确保服务不会在启动时启动?目标仍然是能够做sv start jboss,但不要让它在启动时启动。

0 投票
1 回答
441 浏览

docker - RUnit 不会停止 docker-compose 的容器

我想要一个 RUnit 服务来监督由docker-compose工具启动的一组容器,这是我的 runit 脚本:

/etc/sv/app/run

这就是我所拥有的:

  • sv start app- 启动 docker-compose 就好了
  • sv stop app - 停止 docker-compose 进程本身,但由于未知原因,它使容器保持运行

有没有机会也有stop停止容器的命令?我认为这就是 docker-compose 在被 RUnit 停止时应该做的事情。

0 投票
1 回答
976 浏览

haproxy - 如何为 runit 自定义重启脚本?

我正在使用 runit 来管理 HAProxy,并希望安全重启以重新加载配置文件(特别是:)haproxy -f /etc/haproxy/haproxy.cfg -sf $OLD_PROCESS_ID。我认为我可以run sv restart haproxy并尝试添加一个名为 的自定义脚本/etc/service/haproxy/restart,但它似乎永远不会执行。我如何有一个特殊的重启脚本?我的方法在这里还好吗?如何使用 runit 以最小的影响重新加载我的配置?

0 投票
1 回答
170 浏览

mysql - 在 RUnit 测试套件中使用 .setUp() 和 .tearDown() 函数

我的 R 测试存在以下问题。我有测试函数需要更改数据库、计算结果、检查这些结果是否等于测试值并清理数据库。我正在尝试使用来自 MySQL 的事务以及来自 RMySQL 的 dbBegin(con) 和 dbRollback(con) 函数。

我试图运行以下代码:

使用测试套件

但是,当我运行多个功能时,我得到

这意味着我永远不会回滚我在数据库中写入的内容。

谁能指出上面的代码有什么问题和/或如何在 R + RMySQL 中编写测试来测试内部事务?

谢谢,弗拉基米尔

0 投票
2 回答
256 浏览

debian - 监督 debian 中的守护进程

我们在Debian wheezy (oldstable) linux 服务器上运行 rabbitmq、redis 和 celery。所有这些都作为init.d脚本安装并在引导时启动。我们希望密切关注它们并在其中任何一个出现故障时收到电子邮件警报。

我检查了诸如 supervisord 和 runit 之类的工具。但是,它们似乎都要求受监控的进程不是守护进程。

如何完成这项工作?还有其他工具可以完成工作吗?请。建议。

0 投票
1 回答
112 浏览

nginx - berks-api 不会在 azure 的 ubuntu 上运行 - 获得权限被拒绝 @ rb_sysopen - /etc/chef/client.pem

作为我们厨师基础设施的一部分,我正在尝试设置和配置 berks-api 服务器。我已经在 azure 中创建了一个 Ubuntu 服务器,并且我已经对其进行了引导,它在我的 chef-server 中显示为一个节点。

我已按照github - bekshelf-api installation上的说明通过说明书安装 berks-api。我跑了

在我的节点上,食谱似乎已成功运行。

问题是berks-api 似乎没有运行。我的 Linux 术语不太好,如果我说的话有误,很抱歉,但似乎 berks-api 服务无法运行。如果我导航到 /etc/service/berks-api 并运行此命令

我收到这个错误

如果有人可以帮助我弄清楚发生了什么,我将非常感激。如果您需要进一步解释设置,请告诉我。

0 投票
1 回答
646 浏览

linux - runit 会收获孤儿进程吗?

我正在编写一个基于Phusion baseimage的小型 Docker 容器,它提供了开箱即用的 runit。

我将 Cassandra 和 Opscenter 代理放入我的容器中。两者都作为 /etc/service 下的服务启动(如文档中所示)。

这篇文提到 my_init 会收集僵尸进程,但对于它对孤立进程的作用却含糊其辞。

ps -ef这是我的 Docker 容器中的示例输出:

注意runsv opscenter-agent(pid 33) 启动一个子进程,它是一个带有子进程 (pid 471) 的 bash 调用 (pid 38)。

然后我跑了sv stop opscenter-agent,然后ps -ef

注意 pid 38 消失了,但 pid 471 现在附加到my_init.

这是正确的行为吗?我应该怎么做才能收获子进程?

0 投票
0 回答
238 浏览

ruby - 通过 runit 杀死工头子进程

我正在使用 runit 进行流程监督。我有以下简单的服务运行脚本:

这开始使用 RVM 包装器使用适当的 RVM 环境包装工头。一切都开始并运行良好,但是当我发出问题时,sv down myapp我可以在日志中看到工头报告接收 SIGTERM 并且工头进程终止,但子 Web 和工作进程继续运行。

如果我只是使用 kill 而不是通过 runit 手动向工头发送 SIGTERM,也会发生此问题,因此可能不是特定于 runit 的。但是,如果我以交互方式运行工头,然后执行 Cc 以发送正常工作的 SIGINT。但是,通过 kill 发送 SIGINT 和 SIGKILL 不起作用。

有没有办法让工头在非交互式运行时终止它的子进程,就像我在我的 runit 脚本中一样?

0 投票
0 回答
162 浏览

ruby-on-rails - 如何使用 runit 监督 Rails 微服务

我正在尝试在我的 ubuntu 服务器上持续部署一些 rails 微服务,我认为 runit 可能是监督这些流程的好主意,然后在 chef 中使用迁移来更新微服务 - 但我坚持让一项服务工作。基本上安装似乎在 chef deploy 中工作,但应用程序没有启动并且没有在 3000 上监听(在杀死 server.pid 后从部署文件夹手动启动确实有效)

这是一台干净配置的机器,也是盒子上唯一的 rails 应用程序 - 所以我认为日志中提到的错误是我尝试启动它的症状。

任何有关这可能如何工作(替代方案)的提示都表示赞赏!

模板

看起来 nohup 不是这样做的方法 - 日志文件会产生这个。我不明白服务器是如何运行的 - 第一个日志条目说它已经在运行......但是

这会重复几次......直到不再记录此错误。

如果我 ps aux | grep rails it l 很多这些条目

食谱