问题标签 [daemons]

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

java - ProcessBuilder 和守护进程有什么不好的地方

在 ProcessBuilder 的 JavaDoc 上它指出

创建进程的方法可能不适用于某些本机平台上的特殊进程,例如本机窗口进程、守护进程、
Microsoft Windows 上的 Win16/DOS 进程或 shell 脚本。

我的主要问题是 ProcessBuilder 不能很好地与守护进程一起工作吗?ProcessBuilder 不适合作为启动这些类型应用程序的可接受方式怎么办?

谢谢!

0 投票
1 回答
415 浏览

ruby - 从 Ruby 脚本运行的 AppleScript 中止陷阱

我有一个 Ruby 程序,除其他外,它执行用户定义的代码块(代码在 Github 上,here)。其中许多块包含系统命令,我正在尝试调试一个非常具体的案例,即在我正在调用的 bash 脚本中执行一段 AppleScript。有问题的脚本用于通过命令行控制 Spotify,这就是代码

我遇到的问题是每次运行脚本时都会发生中止陷阱错误:

这必须与进行调用的 Ruby 脚本的环境有关,但我无法理解原因。这是调用它的代码块:

yield当通过套接字连接触发特定事件时,此块通过语句定期运行。该脚本也被守护,使用 ruby​​ gem“daemons”,允许它在后台运行(但仍然作为当前用户,根据ps和 ruby​​ 环境变量)。不仅如此,每个套接字连接都会启动一个新线程,因此代码在与主线程不同的线程中运行。

在我的调试中,我尝试system "spotify pause"在守护进程启动脚本后运行该行,没有问题。它在以下脚本中也运行良好:

因此,导致问题的不是启动新线程或本身的守护进程,但它似乎是这些事情的组合,并且可能正在产生块这一事实意味着 AppleScript 正在引发中止陷阱在 bash 脚本中。

如果您可以将自己的许多层复杂化带回现实,我将不胜感激您为解决甚至调试这个奇怪的案例提供的任何建议!

0 投票
0 回答
657 浏览

ruby - 守护 Mailman 应用程序

通过运行启动我的邮递员应用程序可以正常rails runner lib/daemons/mailman_server.rb工作。

从我的守护程序脚本和命令开始时bundle exec rails runner script/daemon run mailman_server.rb,脚本会生成错误:

我的代码如下:

lib/守护进程/mailman_server.rb

我的脚本/守护程序文件是:

关于为什么它作为守护进程失败的任何见解?

0 投票
1 回答
351 浏览

ruby - 如何循环重启守护进程?

我正在尝试使用 Ruby 的daemongem 并循环重启具有自己循环的守护程序。我的代码现在看起来像这样:

运行它会给我以下错误(60秒后):

所以显然Daemons.call不会像我想的那样返回一个可控的守护进程。我需要做什么才能正确设置它。守护进程在这里是正确的工具吗?

0 投票
2 回答
1047 浏览

ruby - 守护进程不会重新启动?

我正在尝试在多个守护进程中运行相同的脚本。

myapp.rb看起来像这样:

我的myapp_controller.rb

当我ruby myapp_controller.rb start连续运行几次时,它会创建很多守护进程,正如我所期望的那样。但是,过了一会儿,由于myapp.rb守护进程中的错误崩溃并且监视器仅重新启动一个而不是全部。所以我最终得到了一个正在运行的守护进程。

为什么?我究竟做错了什么?

0 投票
2 回答
5465 浏览

ruby - Ruby:记录器和守护进程

我正在使用 ruby​​ 1.9.2p180(2011-02-18 修订版 30909)

为了进行日志记录,我使用日志记录 gem。我的程序有两个块,用作守护进程。

但是从这些块中记录会导致错误,并且不会将任何内容写入日志文件:

以下是代码中发生的情况:

任何想法,那里有什么问题?

0 投票
1 回答
649 浏览

ruby - 如何在停止时杀死 ruby​​ Thor 中的所有进程?

我在下面有一个脚本,它使用Thor像 rake 任务管理一样运行ARGV

当 start 时ruby script.rb start,它会生成两个子进程(总共三个)。我的问题是如何在我执行时杀死所有进程ruby script.rb stop。我在网上看到,在启动时,我应该将 pid 父进程存储到一个文件中,当停止时,我读取它并杀死它。问题是杀死父母不会杀死孩子。所以我可以将所有三个pid都保存在文件中,然后一一杀死。

我在问自己什么是正确的方法,以及我在内部处理流程的方式start是否正确。

0 投票
3 回答
1561 浏览

php - 将 PHP 进程作为守护进程运行,同时从后台安全地杀死它

我们正在运行一个 PHP 守护程序,它查看队列,接收工作人员作业并生成工作人员来处理它。工人自己在继续之前获得特定位置的锁定。

我们将守护进程生成为 nohup 后台进程。

整个架构似乎都可以工作,除非我们出于某种原因必须终止进程。如果我们使用 -9 杀死它们,则无法将其捕获在工作进程中并在死前释放锁。

如果我们使用小于 -9 的任何东西(如 TERM 或 HUP),它似乎不会被守护进程或工作进程接收。

有没有人以更好的方式解决了这个问题?

(ps:顺便说一句,由于其他考虑,我们可能无法更改我们的实现语言,所以请只考虑基于 PHP 的解决方案)

0 投票
3 回答
319 浏览

python - 开发 Mac OSX/Windows Daemon 服务的工具包

我需要开发一个也存在于系统托盘中的守护程序服务。系统托盘图标允许用户通过右键菜单自定义/访问一些选项。它可能会打开一个窗口,并以更好的方式管理这些选项。

该应用程序主要与 RESTful 服务通信,发布和下载文件。

现在我知道对于任何守护程序服务,它都需要是本地的。然而,我们没有奢侈地维护 3 个不同的开发管道,特别是因为该应用程序是实验性的(但可能会落入用户手中)

我有 Java/Scala 方面的经验,其次是 C++/Python/JS。我更喜欢 java/Scala(现有代码库),但对其他语言的框架开放。

我正在考虑做一个基于 scala 的应用程序,带有用于窗口的摇摆,但它并不漂亮。有任何想法吗?

0 投票
0 回答
458 浏览

c++ - 启动和停止包含内核线程的守护进程

我想运行一个在 openSUSE 12 上使用 POSIX 线程作为守护进程的 c++ 程序,并且能够使用基于此模板的普通 init.d 脚本作为服务启动、停止和重新启动它:http://www.novell .com/coolsolutions/feature/15380.html

然而事实证明 startproc 和 killproc 不适合处理内核线程(显然是 POSIX 线程)。我设法用 startproc 启动程序,但它没有被 killproc 识别和杀死。rc_status 在运行 startproc 时返回红色“failed”,即使程序实际已启动,并且在运行 killproc 时返回绿色“done”,即使它没有杀死进程。

有没有在 openSUSE 12 上使用 startproc/killproc 的替代方法?如果一个人用一个简单的 nohup 启动服务,那么它是如何正常停止的呢?只是杀了它?在那种情况下,获取“kill”所需的pid的好方法是什么?