问题标签 [daemon]

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 投票
16 回答
327940 浏览

python - 如何在 Python 中创建守护进程?

在 Google 上搜索会显示 x2 代码片段。第一个结果是这个代码配方,它有很多文档和解释,以及下面的一些有用的讨论。

但是,另一个代码示例虽然没有包含太多文档,但包含用于传递命令(例如启动、停止和重新启动)的示例代码。它还创建一个 PID 文件,可以方便地检查守护程序是否已经在运行等。

这些示例都说明了如何创建守护程序。还有其他需要考虑的事情吗?一个样本比另一个样本好,为什么?

0 投票
13 回答
42848 浏览

perl - 如何在 unix 中守护任意脚本?

我想要一个可以将任意通用脚本或命令转换为daemon的守护程序。

我想处理两种常见的情况:

  1. 我有一个应该永远运行的脚本。如果它死了(或在重新启动时),请重新启动它。不要让两个副本同时运行(检测一个副本是否已经在运行,在这种情况下不要启动它)。

  2. 我有一个简单的脚本或命令行命令,我想永远重复执行(运行之间有短暂的停顿)。同样,不要让脚本的两个副本同时运行。

当然,在案例 2 中围绕脚本编写一个“while(true)”循环然后为案例 1 应用解决方案是微不足道的,但更通用的解决方案将直接解决案例 2,因为这适用于案例 1 中的脚本好吧(如果脚本不打算死掉,你可能只需要更短的暂停或没有暂停(当然,如果脚本真的永远不会死,那么暂停实际上并不重要))。

请注意,该解决方案不应涉及,例如,将文件锁定代码或 PID 记录添加到现有脚本。

更具体地说,我想要一个可以运行的程序“守护进程”

或者,例如,

这将使越来越多的日期列表附加到 times.txt。(请注意,如果 daemonize 的参数是一个像上面的情况 1 一样永远运行的脚本,那么 daemonize 仍然会做正确的事情,在必要时重新启动它。)然后我可以在我的 .login 中放置一个类似上面的命令和/或每小时或每分钟 cron 它(取决于我对它意外死亡的担心程度)。

注意: daemonize 脚本需要记住它正在守护的命令字符串,这样如果相同的命令字符串再次被守护,它就不会启动第二个副本。

此外,理想情况下,该解决方案应该适用于 OS X 和 linux,但欢迎使用其中一种或另一种的解决方案。

编辑:如果您必须使用sudo daemonize myscript myargs.

(如果我认为这一切都错了,或者有快速而肮脏的部分解决方案,我也很想听听。)


PS:如果它有用,这里有一个类似的问题特定于 python。

这个对类似问题的回答似乎是一个有用的习语,可以快速而肮脏地妖魔化任意脚本:

0 投票
11 回答
101575 浏览

java - 如何守护 Java 程序?

我有一个 Java 程序,我想在 linux 系统上进行守护进程。换句话说,我想在 shell 中开始运行它,并在我注销后让它继续运行。我也希望能够干净地停止程序。

我发现这篇文章结合使用了 shell 脚本和 Java 代码来解决问题。它看起来不错,但如果可能的话,我想要更简单的东西。

在 Linux 系统上守护 Java 程序的首选方法是什么?

0 投票
6 回答
3141 浏览

java - FAST 应用程序间通信的良好协议?

我即将实现一个可以快速回答查询的服务器应用程序。服务器是用java实现的。我不想在复杂的通信协议上浪费很多时间,所以我寻找一种好的最佳实践方法 1)对我的服务器执行查询 2)让服务器回答该查询 查询和答案都将是从整数映射到整数列表。

相关:是否有任何组合框架既可以处理查询/响应协议又可以管理传入查询(将它们放入队列中)?

我不知道我是否应该将它实现为普通的守护程序或 Web 服务。Web 服务似乎更灵活,因为它可以相对容易地移动到另一台机器上,但普通的守护进程听起来更快。

0 投票
3 回答
3095 浏览

ruby - 使用 Ruby Daemons gem 检测停止

我正在使用 ruby​​ 守护进程gem。想知道如何在停止操作中添加一些额外的步骤?希望我能检测到停止被调用,并添加一些额外的代码。有谁知道我怎么能做到这一点?

0 投票
6 回答
7354 浏览

python - 选择和部署彗星服务器

我想通过 HTTP 将数据推送到浏览器而不杀死我的 django/python 应用程序。

我决定使用彗星服务器来代理我的应用程序和客户端之间的请求(尽管我还没有真正弄清楚)。

我研究了以下引擎:轨道彗星 ejabberd 码头

有没有人有使用这些服务器和部署它们的经验?关于这些主题的任何见解和链接都会很棒。谢谢你。

0 投票
3 回答
1754 浏览

linux - 长时间运行的java进程

我继承了一个应该在 Linux 服务器的后台运行的 java 系统。指示要求启动它java -jar start.jar。这对我来说似乎有点太脆弱了。我希望它在后台实际运行,理想情况下在启动时自动启动。

实现这一目标的最佳方法是什么?我已经研究过在一个screen环境中运行系统,它工作正常,但在系统重新启动时不会自动启动。

0 投票
17 回答
6597 浏览

php - 将 PHP 用于守护进程是否明智?

我希望创建一个后台进程,有人告诉我这些通常是用 C 或类似的东西编写的。我最近发现 PHP 可以用来创建一个守护进程,如果我应该以这种方式使用 PHP,我希望能得到一些建议。

这是我对守护进程的要求。

  • 不断检查是否有行已添加到 MySQL 数据库表中
  • 对从数据库检索到的内容运行 FFmpeg 命令
  • 将输出插入 MySQL 表

我不确定我还能提供什么来帮助做出这个决定。只是补充一下,我以前没有做过C。只有 Java 和 PHP 以及基本的 bash 脚本。

它甚至会产生如此大的性能差异吗?

请原谅我的无知,我正在学习!:)

谢谢大家

0 投票
8 回答
24776 浏览

python - 与正在运行的 python 守护进程通信

我编写了一个作为守护进程运行的小型 Python 应用程序。它利用线程和队列。

我正在寻找更改此应用程序的通用方法,以便在它运行时与它进行通信。大多数情况下,我希望能够监控它的健康状况。

简而言之,我希望能够做这样的事情:

后来,我希望能够来做类似的事情:

需要明确的是,我在实现受 Django 启发的语法时没有任何问题。我不知道如何做是将信号发送到守护进程(启动),或者如何编写守护进程来处理和响应这些信号。

就像我上面说的,我正在寻找一般的方法。我现在唯一能看到的是告诉守护进程不断地将可能需要的所有内容记录到文件中,但我希望有一种不那么混乱的方式来处理它。

更新:哇,很多很棒的答案。非常感谢。我想我会同时研究 Pyro 和 web.py/Werkzeug 方法,因为此时 Twisted 比我想咬的要多一点。我想,下一个概念上的挑战是如何在不挂断工作线程的情况下与我的工作线程交谈。

再次感谢。

0 投票
3 回答
1812 浏览

ruby-on-rails - Rails 守护进程处于开发模式

我有一个带有守护进程的 Rails 应用程序,它检查邮箱是否有任何新电子邮件。我正在为此任务使用Fetcher插件。守护程序文件如下所示:

所以我让它抓取新的电子邮件,解析它们并从解析的数据中创建一个资源。但是当它试图保存资源时会抛出异常。这是因为脚本会自动分配开发环境。所以它使用我的开发数据库配置而不是生产环境(这是我想要的配置)。

我尝试使用以下方式启动脚本:

但无济于事。似乎当我加载 environment.rb 文件时,它只是默认为开发环境并从 database.yml 加载 development.rb 和开发数据库配置。

想法?建议?

谢谢