问题标签 [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.
ruby-on-rails - 使用 supervisord 和 rvm 运行 rubyonrails
我有一个 RubyOnRails 3 项目,我正在使用 rvm。我想从 sysvinit 脚本切换到 supervisord。sysvinit 脚本只能在出现错误的情况下启动软件,它会被 $something 杀死并重新启动。主要是我。
在项目文件夹中有一个.ruby-version
和一个.ruby-gemset
文件,以便自动加载正确的 ruby 版本和 gemset。然后该应用程序使用如下所示的 shell 脚本启动:
我的初始化脚本看起来像这样,除了重新启动和停止之外还可以工作:
我的主管配置如下所示:
问题是包装器中没有 rails 二进制文件。使命令失败。这样做的正确方法是什么?我没有想法,会开始将一些非常丑陋的 bash 脚本放在一起,以一种非常错误和糟糕的方式完成这项工作,但确实做到了。顺便说一句,我在 gems 文件夹中找到了 rails 。
javascript - Node.JS 和 System V 队列 / sysv
我用 PHP 编写的文件使用了 Linux 系统的 SYSV 函数。代码中使用的函数是msg_send
:msg_receive
和msg_get_queue
。我的团队希望使用 Node.JS 编写相同的功能。我最近的一次:https ://github.com/coderz/node-sysv-ipc 。上述解决方案似乎是半生不熟。是否有现成的节点模块可用于与 SYSV 消息队列交互?请帮助我。
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。所以理论上这些队列不占用任何空间,尽管在某些时候我希望系统迭代这些是系统的负载。
我的问题是:
- 为什么会这样?
- 这些资源是否会过期、超时或以其他方式消失?
- 有没有我没有看到的解决方案?
go - 我可以基于我正在构建的操作系统导入 Golang 包吗?
假设我有一个基于哪个操作系统的 go 项目,在某些情况下是哪个发行版,我想使用 Systemd 客户端包、Upstart 客户端包、sysv 客户端包和启动客户端包。是否可以有选择地导入每个包,以便我只导入我正在构建的每个操作系统/发行版所需的包?还是我必须为每个操作系统/发行版导入每个包?
python - 初始化脚本在启动时不工作 - 否则工作正常
我在这里基于双叉方法编写了一个 python 守护程序。
它在scsdaemon.py
使用 start|stop 参数直接调用时非常有效,并且在 raspberry 已经启动时调用下面的 init 脚本也可以正常工作。
我确保在启动期间通过运行调用脚本,sudo update-rc.d scsdaemon defaults
并确保它是可执行的:
我已经在 init 脚本中放入了一个重定向到文件的 echo 语句,/tmp
因此可以验证脚本是否运行。
但是服务没有启动。日志中没有一条消息,我的应用程序创建的日志也在那里但为空。
我错过了什么?为什么这在正常运行期间有效,但在启动期间无效?
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
服务?
bash - 使用 RHEL 的 `daemon` init.d 函数时,如何捕获 PID?
这是RedHatdaemon
函数用法的后续。在接受的解决方案中,作者指出“$!
在使用 [函数] daemon
[来自 /etc/rc.d/init.d/functions] 时不可用”。所以我的后续问题是关于获取 PID。
如果你想使用daemon
来自 /etc/rc.d/init.d/functions 的函数,你如何捕获 PID?
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,不知道为什么。
提前致谢!
linux - sysV init.d:优先级的真正含义是什么?
文档对于chkconfig
优先级编号的实际含义有点松散,文档init
甚至没有提到我机器上的优先级。
假设您有以下内容:
哪个先运行?优先级较高的那个(条形图)?还是优先级编号更多的是开始顺序编号,所以较低的数字在较高的数字之前开始?
如果是K01foo
和K02bar
。哪一个会先被阻止?优先级更高,还是更像是“止损单”?
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 吗?谢谢!