问题标签 [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 投票
2 回答
755 浏览

docker - Docker 容器中的 Runit 不传递环境变量

我正在尝试在 Docker 中运行一个多进程应用程序,其中 runit 作为 init 进程,但 runit 不会将环境变量传递给应用程序:

在 Dockerfile 中:

服务文件/etc/service/app/run如下所示:

当我使用ENV_VARset 运行 docker 容器时,变量不会通过 runit 传递给应用程序。输出:

如何让 runit 将环境变量传递给服务/应用程序?

0 投票
0 回答
204 浏览

docker - 如何根据内存使用情况监控和重新启动在 Docker 中运行的应用程序?

我有一个在 Docker 中运行的应用程序,随着时间的推移会泄漏内存。当内存使用量超过阈值时,我需要定期重新启动此应用程序。我的应用程序可以响应信号或通过触摸tmp/restart.txt(这是 Rails)...只要我可以运行脚本或在触发限制时发送可配置的信号,我就可以安全地关闭/重新启动我的进程。

我已经研究过使用 Docker 限制内存利用率,但是当达到限制或预留时,我没有看到自定义操作。ASIGKILL不适合我的应用程序...我需要一些时间来清理。

我将runit用作容器内的最小初始化系统,并将ECS用于容器编排。这感觉像是在应用程序或初始化级别处理的问题......杀死容器而不是重新启动进程似乎很重。

我过去曾为此使用过Monit,但我不喜欢 Monit 处理 pidfile 的方式……Monit 经常失去对进程的控制。我正在尝试Inspeqtor,它似乎非常符合要求,但是虽然它支持 runit,但没有开箱即用的包可以与 runit 一起使用。

所以我的问题是,如果 SIGKILL 不适合我的用例,那么监控进程的内存使用情况然后根据该使用量超过阈值执行清理/重新启动操作的最佳方法是什么?

0 投票
1 回答
667 浏览

systemd - Systemd 与 Runit 兼容吗?

我有一个基于 Systemd 的生产环境和一个基于 Runit 的测试环境(由于某种原因,我无法更改它)。我的问题是,每当我创建服务时,我都需要 Systemd 和 Runit 版本来复制编码和测试工作。有没有办法让我的 systemd 生产服务以某种方式在测试环境中与 Runit 一起工作?例如,我知道 Systemd 与 Upstart 和 SysV 兼容,所以如果我为它们提供两个服务,我可以在 Systemd 上使用它们。我想知道 Runit 和 Systemd 之间是否也可以这样。如果这是可能的,我该怎么做?

0 投票
0 回答
130 浏览

symfony - Monolog vs worker vs supervisord

启动 Docker 容器时,我无法从 supervisord/runit log/stdout 中的 Symfony 工作人员获取日志。是的,我尝试使用 supervisord 和 runit,但仍然无法正常工作。如果我在代码中有一些异常,我可以在标准输出中定期看到它,但仅此而已。

我担心我的 Monolog 配置有问题,因为如果我echo在代码中添加常规,我可以看到输出。

Monolog 文件很简单:

我尝试在 php.ini 文件中使用path: 'php://stdout'或使用/取消更改,例如: 、、、,但显然不起作用。我找不到合适的组合。path: 'php://stderr'display_errors = Onerror_log = /proc/self/fd/2catch_workers_output = yes

Symfony worker 是一个长生命周期的进程,我需要一些 init 处理器来启动它,比如 supervisord 或 runit。

对于 runit,我尝试了一些技巧:https ://git.nixaid.com/arno/show-runit,但正如我上面提到的,正常echo工作,而 PSR Symfony 日志不是。

对于 supervisord 和 runit,尝试了这个:Symfony logs to stdout inside Docker container,但同样 - 不起作用。

有什么提示吗?

0 投票
0 回答
413 浏览

archlinux - 为什么“dbus:...wpa_supplicant...getter failed”在启动时出现?

这在启动我的 x220 thinkpad 后出现:

dbus: fill_dict_with_properties dbus_interface=fi.w1.wpa_supplicant1.Interface.P2PDevice dbus_property=P2PDeviceConfig getter failed

顺便说一句,我将 Artix Linux 与 Runit 以及 NetworkManager 一起使用。

0 投票
1 回答
97 浏览

docker - 使用 runit 为系统启动和启用 docker

我的 Linux 中没有 systemd,但是 runit。

对于 systemd 用户,启动和启用 docker 可以如下完成

但是如何为 runit 用户启动 docker 呢?

0 投票
0 回答
56 浏览

runit - 没有暂停的runit启动脚本

我正在使用基于 runit 的 linux 发行版(artix),我想在启动时以 root 用户运行一次脚本。为了实现这一点,我通常使用这种运行脚本创建一个服务:

这允许命令在服务启动时运行一次,但这会使无用的进程保持活动状态。有没有更简洁的方法来告诉 runit 服务脚本应该运行一次