问题标签 [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 回答
1609 浏览

osx-mountain-lion - 我是否在这里重新启动/重新配置了每个 launchctl 守护程序?

我不小心发出了以下命令:

输出:

我是否启动或配置了该 LaunchDaemons 目录中的每个守护程序?如果是,我如何恢复以前的状态,是否有 Lion 的默认启动启动守护进程列表?

提前致谢!

0 投票
0 回答
543 浏览

ruby - ruby 'daemonized' 脚本出现意外问题

我这里有一个突然改变行为的脚本,我不知道为什么。据我所知,没有对脚本进行任何更改,也没有对红宝石或宝石进行任何更改。

首先,这是脚本:

该脚本名为“run.rb”,路径为 /var/www/main/projects/systems/background。该脚本由位于“主”文件夹中的两个不同的 bash 脚本调用。第一个称为“background_restart.sh”,调用 ruby​​ 解释器和完全限定名称,如下所示:

现在失败了,仅向终端输出“终止”。另一个名为“deploy.sh”的脚本部署 Web 应用程序,但失败并显示相同的输出(它的第一个和最后一个命令分别是停止和启动)。

我无法解释为什么这突然开始失败。

其他一些需要注意的事项:

  1. 如果我在后台目录中,则可以在终端中调用脚本的完全限定路径。
  2. 将 bash 脚本中的目录更改为“背景”首先似乎解决了这个问题,尽管这对我来说有点不满意。
  3. 当我部署时,会出现进一步的问题:

部署脚本基本上将当前生产代码移动到另一个目录,并将更新的代码放在它的位置。当它重新启动时,我希望'run.rb'脚本在'background'中重新创建'var'文件夹(根据第24行),但是守护程序gem错误如下:

现在我可以通过在终端中创建'var'文件夹并再次运行它来解决这个问题,所以如果你想知道我为什么要打扰你们,我相信你们中的一些人会明白这是一个问题我不想简单地破解。我想弄清楚这里发生了什么,并尝试回到我以前的状态!

0 投票
1 回答
292 浏览

ruby - 使用 Daemons Ruby gem 启动/停止返回代码

我编写了一些应该作为服务器运行的代码,并用守护进程将其包装为Daemons.run('myserver.rb'). 当我运行它时./daemon.rb start它可以工作但它根本没有信息,即如果myserver.rb抛出异常我什至不知道我的服务器没有启动,守护进程将以退出代码 0 退出。有没有办法告诉守护进程返回一个非- 如果包装的脚本无法启动,则退出代码为零?或者也许是另一种让我知道我的服务器是否成功启动的方法?

0 投票
2 回答
23038 浏览

macos - launchd 没有启动我的守护进程

我试图弄清楚为什么我的守护程序没有自动启动(在 Mac 10.8.3 上)。但是,它在其他机器上运行良好。这是我在 /Library/LaunchDaemons/ 下的 plist

我没有在/var/log/system.log. 我已经检查了permissionownerdaemon. 如果我把我的 plist 放在下面/System/Library/LaunchDaemons/,它可以在之后启动reboot。但这对我来说不是一个好的解决方案。如果我使用“ launchctl load /Library/LaunchDaemons/com.MyApp.tmsm.launcher”,它工作得很好。如果我安装其他作为守护进程的商业软件并且在 下有一个 plist /Library/LaunchDaemons/,它也无法启动。

系统似乎/Library/LaunchDaemons/没有加载任何 plist。我也尝试使用命令“”打开launchctl调试级别launchctl log level debug,但重启后没有更多消息。重启后调试级别是否重置?我可以检查其他日志或配置吗?

谢谢。

0 投票
0 回答
162 浏览

php - 如何在 PORT 上调用 InetD 并调用 PHP 文件

我想用我的 PHP 代码监听一个端口。当某些数据来自特定端口时,我可以使用 InetD 调用我的 PHP 文件吗?

0 投票
2 回答
7621 浏览

django - celeryd 和 celerybeat pid 文件没有被创建,worker 没有启动,但输出显示 OK

我将 celeryd 和 celerybeat 设置为守护进程,它们一直工作到不久。但从一段时间以来,它不会启动工作人员,也不会创建 pid 文件。

这是我的/etc/default/celeryd

这是init.d脚本:

此外,我使用以下命令执行了 init 脚本:按照文档中的sh -x /etc/init.d/celeryd start建议,这是输出:

然后,当我检查 pids 目录时,它是空的,并且ps aux说没有关于它的活动进程。日志中也没有任何内容。我没有使用 virtualenv。它刚刚停止工作。的版本django-celery3.0.21. 这是我的wsgi脚本:

这是我的 djcelery 相关设置:

请,任何建议将不胜感激!!!!提前致谢...

0 投票
1 回答
937 浏览

daemons - 如何设置用于在 ruby​​ gem 守护进程中记录输出的选项?

我正在使用守护进程 1.1.9。我无法让守护进程记录到日志文件。我的守护进程控制文件如下:

pids 和 log 目录都只是根文件夹的下一个,并且 pid 文件正在成功写入,所以我知道这不是目录/目录模式的错误指定。文件 myserver.rb.log 和 myserver.rb.output 存在于日志目录中。我究竟做错了什么?提前致谢。

0 投票
1 回答
48 浏览

hadoop - Hadoop:无法启动守护进程

我无法在我的伪分布式 hadoop 配置中启动守护进程。我输入以下命令:

sudo bin/start-all.sh

我收到输入密码的提示,但是一旦我这样做了,我就会收到此错误消息

我尝试使用 chown 命令将 hadoop 的所有权更改为本地用户。但是我仍然收到这个烦人的错误。我正在尝试以 root 模式调用此脚本。

我在哪里错了?我在网上到处搜索,似乎没有足够的hadoop经验来回答我的问题。

你的回答真的很感激..

0 投票
3 回答
6909 浏览

hadoop - 数据节点不启动

我无法启动我的 Hadoop 数据节点。我做了所有我能做的研究,但没有一种方法有助于解决我的问题。这是我尝试使用它启动时的终端控制台输出

这就是发生的事情:

正如我们所见,DataNode 尝试启动但随后关闭。一直以来,我一直在 NameNode 启动时遇到问题。我曾经通过手动启动它来解决这个问题

现在问题出在 DataNode 上。我真的很感谢您为解决此问题提供的所有帮助。

还有一个更通用的问题。为什么 Hadoop 显示出这种不一致的行为。我确定我没有更改任何 *-site.xml 设置。

0 投票
0 回答
595 浏览

unix - 信号和waitpid共存

我有以下问题:我可以为 SIGCHLD 使用信号处理程序并在特定位置使用 waitpid(3) 吗?

这是我的场景:我启动一个监听套接字的守护进程(此时它是 TCP 还是 UNIX 套接字无关紧要)。每次客户端连接时,守护进程都会派生一个子进程来处理请求,并且父进程继续接受传入的连接。处理请求的孩子有时需要在服务器上执行命令;让我们假设在我们的示例中它需要执行这样的复制:

为此,clild 派生了一个新进程,该进程使用 execl(3)(或 execve(3) 等)来执行复制命令。

为了更好地控制我的代码,理想情况下,我希望使用 waitpid(3) 捕获执行副本的孩子的退出状态。此外,由于我的守护进程正在派生子进程来处理请求,因此我需要为 SIGCHLD 提供信号处理程序,以防止创建僵尸进程。

在我的代码中,我使用信号(3)为 SIGCHLD 设置了一个信号处理程序,我通过分叉两次来守护我的程序,然后我在我的套接字上监听传入的连接,我分叉一个进程来处理每个即将到来的请求和我的子进程分叉一个执行复制的子进程,试图通过 waitpid(3) 捕获其退出状态。

发生的情况是,当孙子进程死亡时,SIGCHLD 被我的处理程序捕获,在 waitpid(3) 采取行动并且 waitpid(3) 返回 -1 之前,即使孙子进程成功退出。

我的第一个想法是添加:

就在分叉子进程来处理我的连接客户端之前,没有任何成功。使用 SIG_IGN 也不起作用。

有没有关于如何使我的场景工作的建议?

提前感谢大家的帮助!

PS。如果您需要代码,我会发布它,但由于它的大小,我决定仅在必要时这样做。

PS2。我的意图是在 FreeBSD 中使用我的代码,但我的检查是在 Linux 中执行的。

编辑[已解决]:

我面临的问题解决了。“意外”行为是由我的 waitpid(3) 处理代码引起的,该代码在某些时候有问题。

因此,上述方法确实可以用于在类似守护程序的程序中允许 signal(3) 和 waitpid(3) 共存。

感谢您的帮助,我希望这种方法可以帮助希望完成这样事情的人!