问题标签 [sysv]

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 回答
1601 浏览

ruby-on-rails - 使用 supervisord 和 rvm 运行 ruby​​onrails

我有一个 RubyOnRails 3 项目,我正在使用 rvm。我想从 sysvinit 脚本切换到 supervisord。sysvinit 脚本只能在出现错误的情况下启动软件,它会被 $something 杀死并重新启动。主要是我。

在项目文件夹中有一个.ruby-version和一个.ruby-gemset文件,以便自动加载正确的 ruby​​ 版本和 gemset。然后该应用程序使用如下所示的 shell 脚本启动:

我的初始化脚本看起来像这样,除了重新启动和停止之外还可以工作:

我的主管配置如下所示:

问题是包装器中没有 rails 二进制文件。使命令失败。这样做的正确方法是什么?我没有想法,会开始将一些非常丑陋的 bash 脚本放在一起,以一种非常错误和糟糕的方式完成这项工作,但确实做到了。顺便说一句,我在 gems 文件夹中找到了 rails 。

0 投票
0 回答
257 浏览

javascript - Node.JS 和 System V 队列 / sysv

我用 PHP 编写的文件使用了 Linux 系统的 SYSV 函数。代码中使用的函数是msg_sendmsg_receivemsg_get_queue。我的团队希望使用 Node.JS 编写相同的功能。我最近的一次:https ://github.com/coderz/node-sysv-ipc 。上述解决方案似乎是半生不熟。是否有现成的节点模块可用于与 SYSV 消息队列交互?请帮助我。

0 投票
0 回答
208 浏览

php - CentOS IPC 消息队列填满了来自 PHP 应用程序的消息

我有一个长期运行的 PHP 应用程序,它生成多个子进程以在 CentOS VM 上运行任务,它使用 SysV IPC 消息队列(通过 msg_get_queue() 等)将事件发送到父进程。

问题是即使孩子们在退出之前很好地执行了 msg_remove_queue(),消息资源似乎仍然停留在系统级别。最终这会填满消息队列,直到到达 kernel.msgni。

有趣的是,当我跑步时

作为运行此脚本的用户,我看到消息队列按预期出现和消失。但是,当我以 root 身份运行相同的命令时,队列列表会缓慢而持续地增长,其中很多都在列表中:

我不是 SysV 消息队列方面的专家,所以我有点不确定这里的最佳解决方案,或者是否有一个好的解决方案。目前,我已将 kernel.msgni 设置为 100,000(!)。我不确定这在 1GB 盒子上是否是个好主意。

请注意,权限为 0,使用的字节数也为 0。所以理论上这些队列不占用任何空间,尽管在某些时候我希望系统迭代这些是系统的负载。

我的问题是:

  1. 为什么会这样?
  2. 这些资源是否会过期、超时或以其他方式消失?
  3. 有没有我没有看到的解决方案?
0 投票
2 回答
2548 浏览

go - 我可以基于我正在构建的操作系统导入 Golang 包吗?

假设我有一个基于哪个操作系统的 go 项目,在某些情况下是哪个发行版,我想使用 Systemd 客户端包、Upstart 客户端包、sysv 客户端包和启动客户端包。是否可以有选择地导入每个包,以便我只导入我正在构建的每个操作系统/发行版所需的包?还是我必须为每个操作系统/发行版导入每个包?

0 投票
0 回答
100 浏览

python - 初始化脚本在启动时不工作 - 否则工作正常

我在这里基于双叉方法编写了一个 python 守护程序。

它在scsdaemon.py使用 start|stop 参数直接调用时非常有效,并且在 raspberry 已经启动时调用下面的 init 脚本也可以正常工作。

我确保在启动期间通过运行调用脚本,sudo update-rc.d scsdaemon defaults并确保它是可执行的:

我已经在 init 脚本中放入了一个重定向到文件的 echo 语句,/tmp因此可以验证脚本是否运行。
但是服务没有启动。日志中没有一条消息,我的应用程序创建的日志也在那里但为空。

我错过了什么?为什么这在正常运行期间有效,但在启动期间无效?

0 投票
0 回答
180 浏览

logstash - 为什么`systemctl list-unit-files`命令输出不包含logstash

我将带有 YUM 的 ELK(Elasticsearch、Logstash 和 Kibana)安装到我们基于 centos 的系统上,并将它们设置为启动时启动。然后当我尝试 commandsystemctl list-unit-files时,输出只包含 Kibana 和 Elasticsearch,根本没有 Logstash。但是 Logstash 确实在命令中列出chkconfig --list

根据我的理解,就是说Logstash是SysV服务,而Kibana和Elasticsearch是systemd服务。是这样吗?如果是这样,为什么 Logstash 不同于 Elasticsearch 和 Kibana 作为SysV服务而不是systemd服务?

0 投票
1 回答
631 浏览

bash - 使用 RHEL 的 `daemon` init.d 函数时,如何捕获 PID?

这是RedHatdaemon函数用法的后续。在接受的解决方案中,作者指出“$!在使用 [函数] daemon[来自 /etc/rc.d/init.d/functions] 时不可用”。所以我的后续问题是关于获取 PID。

如果你想使用daemon来自 /etc/rc.d/init.d/functions 的函数,你如何捕获 PID?

0 投票
1 回答
1468 浏览

c++ - 使用哈希样式 SYSV 编译 libstdc++

有没有办法用散列样式 SYSV 而不是 GNU/Linux 编译 GCC 的 libstdc++?我有一个工具链(通过 crosstool-ng),我用它来编译我们公司的库,以便与非常广泛的 Linux 系统一起工作。

其中一个系统是一个非常古老的 RedHat,它只有 SYSV 哈希样式,当我使用工具链编译一个仅限 C 的库/程序时,它工作得很好,因为生成的二进制文件使用 SYSV。

但是,当我与 libstdc++ 链接时,二进制文件会自动更改为 GNU/Linux 样式,原因是因为 libstdc++ 是作为 GNU/Linux 构建的,因此存在问题。

在这个系统中运行二进制文件给了我错误

为了完整起见,我已经尝试过 -Wl,--hash-style=sysv,但没有成功。

另外,我还有另一个用于 ARM 系统的工具链,它具有相同版本的 GCC、GLIBC 等,但在这个工具链中 libstdc++ 使用 SYSV,不知道为什么。

提前致谢!

0 投票
1 回答
450 浏览

linux - sysV init.d:优先级的真正含义是什么?

文档对于chkconfig优先级编号的实际含义有点松散,文档init甚至没有提到我机器上的优先级。

假设您有以下内容:

哪个先运行?优先级较高的那个(条形图)?还是优先级编号更多的是开始顺序编号,所以较低的数字在较高的数字之前开始?

如果是K01fooK02bar。哪一个会先被阻止?优先级更高,还是更像是“止损单”?

0 投票
1 回答
934 浏览

gcc - 在 GNU ABI 下为 System V ABI 构建共享 libc.so

我需要从源代码为 GNU ABI 系统下的 System V ABI 系统构建共享 libc.so。如果它很重要,我正在尝试构建 glibc2.16。

我的 gcc 编译器是使用默认的 --hash-style 选项设置为“sysv”构建的。用它构建的每个应用程序都有 System V ABI。每个,但不是 libc。

尝试添加 C*FLAGS -Wl,--hash-style=sysv,但没有成功。配置已完成,但由于错误而停止:

我发现这是因为 gcc 选项顺序。所以,我决定自己提出必要的选择。在 Makeconfig 和 configure.in 中找到 --hash-style=both。将其更改为 sysv。所有库(ld.so 和其他库)最终都适合使用 System V 构建。除libc.so之外的所有库。

你知道,如何准确地构建 libc.so 吗?谢谢!