问题标签 [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 投票
5 回答
14061 浏览

c++ - 将标准输出重定向到系统日志

我打算为 Debian 打包OpenTibia Server。我想做的一件事是添加启动方式/etc/init.d和进程的守护otserv进程。

问题是,我们可能应该将输出重定向到 syslog。这通常通过syslog()函数完成。目前,代码中充斥着:

是否有一种适当的、易于添加的方法将标准输出和标准错误输出重定向到 syslog 中,而无需替换对 std::cout 和朋友的每一个“调用”?

0 投票
1 回答
2061 浏览

mysql - 在 Ubuntu 8.04 上重新启动 mysql 的更好脚本

当我sudo /etc/init.d/mysql restart在 Ubuntu 8.04.2 上说时,有时会有一个mysql_safe进程占用 99% 的 cpu。使机器几乎无法使用。

有没有更好的重启mysql的方法?我想写一个脚本:

但这将是一个邪恶的解决方法。(脚本只是一个快速的镜头)

我用谷歌搜索,发现这mysql_safe是一个启动的包装脚本mysqld,并确保如果它应该死,它会重新启动。所以应该有更好的方法来重启这个东西。

我用谷歌搜索,这是这个 ubuntu 版本中的一个常见问题。Debian / Ubuntu 在这一点上做错了吗?该/etc/init.d脚本看起来很复杂,它mysql_safe也可以处理,但我的技能不足以完全理解它。但这将是改进的最佳场所。这是我机器上版本的粘贴(未修改):

我发现了很多提示,但我希望这可以解决生产服务器的一定程度的可靠性。

编辑:这似乎正是这个未解决的错误

也许是来自 MySQL 站点的这个错误

似乎相关或相同。

有些人谈论具有 2 个实例的竞争条件mysql_safe。其他人建议注释掉启动脚本中的健全性检查。

0 投票
5 回答
27065 浏览

locking - 在 Unix 上正确处理 PID 文件的参考

我在哪里可以找到一个备受推崇的参考资料,详细说明在 Unix 上正确处理 PID 文件?

在 Unix 操作系统上,通常的做法是使用特殊的锁定文件“锁定”程序(通常是守护进程):PID 文件。

这是一个位于可预测位置的文件,通常是“/var/run/foo.pid”。程序应该在启动时检查 PID 文件是否存在,如果文件存在,则退出并出错。所以它是一种咨询、协作的锁定机制。

该文件包含单行文本,即当前持有锁的进程的数字进程 ID(因此称为“PID 文件”);这允许一种简单的方法来自动向持有锁的进程发送信号。

我找不到关于处理 PID 文件的预期或“最佳实践”行为的良好参考。有各种细微差别:如何实际锁定文件(不要打扰?使用内核?平台不兼容怎么办?),处理陈旧的锁(静默删除它们?何时检查?),何时获取和释放锁,等等。

对于这个小话题,我在哪里可以找到受人尊敬、最权威的参考资料(最好是 W. Richard Stevens 的水平)?

0 投票
5 回答
7330 浏览

php - PHP 守护进程/worker 环境

问题:我想实现几个 php-worker 进程,它们在 MQ 服务器队列上侦听异步作业。现在的问题是,简单地将这些进程作为服务器上的守护进程运行并不能真正让我对实例进行任何级别的控制(负载、状态、锁定)......除了转储 ps -aux 之外。因此,我正在寻找某种运行时环境,可以让我在系统(进程)级别或更高层(某种 Java 风格的应用服务器)上监视和控制实例

任何指针?

0 投票
3 回答
355 浏览

python - 对接受 zip 文件进行处理的守护程序的建议

我想写一个守护进程:

  • 从包含 zip 文件路径的队列(sqs、rabbit-mq 等)中读取消息
  • 更新数据库中的记录,例如“此作业正在处理”
  • 读取上述存档的内容并将一行插入数据库,其中包含从找到的每个文件的文件元数据中挑选出的信息
  • 将每个文件复制到 s3
  • 删除 zip 文件
  • 将作业标记为“完成”
  • 读取队列中的下一条消息,重复

这应该作为服务运行,并由当有人通过 Web 前端上传文件时排队的消息启动。上传者不需要立即看到结果,但上传会在后台相当方便地处理。

我对 python 很流利,所以首先想到的是编写一个带 twisted 的简单服务器来处理每个请求并执行上述过程。但是,我从来没有写过这样可以在多用户上下文中运行的东西。它不会每分钟或每小时处理数百次上传,但如果它可以一次处理几个,那就太好了,合理的。我也不太熟悉编写多线程应用程序和处理阻塞等问题。

人们过去是如何解决这个问题的?我可以采取哪些其他方法?

提前感谢您的帮助和讨论!

0 投票
4 回答
70624 浏览

linux - 如何在 linux 中将 Perl 脚本作为系统守护进程运行?

什么是让 Perl 脚本在 linux 中作为守护进程运行的简单方法?

目前,这是在 CentOS 上。我希望它随系统启动并随系统关闭,所以一些/etc/rc.d/init.d集成也很好,但我总是可以在/etc/rc.d/rc.local.

0 投票
8 回答
1108 浏览

c++ - 如何确保程序正在运行并在需要时重新启动它?

我开发了一个需要持续运行的软件(在 C++ 中)。这基本上意味着它每次停止时都必须重新启动。

我正在考虑使用 cron 作业每分钟检查它是否还活着,但可能有一种更清洁的方式或标准的方式来执行此操作。

提前致谢

0 投票
20 回答
183982 浏览

python - 检查python脚本是否正在运行

我有一个 python 守护程序作为我的 web 应用程序的一部分运行/如何快速检查(使用 python)我的守护程序是否正在运行,如果没有,启动它?

我想这样做来修复守护程序的任何崩溃,因此脚本不必手动运行,它会在调用后立即自动运行,然后继续运行。

如果我的脚本正在运行,我如何检查(使用 python)?

0 投票
2 回答
1280 浏览

ruby-on-rails - Ruby 守护进程挂在 Rails 负载上

我在让工作守护程序正常工作时遇到问题。当我运行时:

守护进程开始加载rails,但无限期地挂起。当我终止进程时,堆栈跟踪总是相同的:

如果我在没有守护程序库的情况下运行脚本,它会按预期工作。事实上,我在使用守护进程 gem 加载任何需要我的 rails 环境的东西时遇到了麻烦。有任何想法吗?

更新: workling_client 将 worklings listen.rb 作为守护进程加载。我没有在listen.rb中加载rails,而是对其进行了更改,以便将其加载到workling_client中,并且该过程可以顺利进行。因此,我无法在守护脚本中加载 rails 是有原因的 :-(

0 投票
4 回答
2962 浏览

c - 使用 execl 执行守护进程

我正在 Linux 上用 C 语言编写一个程序,其中包括一个允许在远程机器上执行 shell 命令的模块。实际执行命令的最简单方法当然是简单地使用 system() 函数,或者使用 popen 然后获取输出。但是,由于与当前问题无关的其他设计要求,我选择使用更底层的方法。

所以基本上,我建立了一个管道和分叉,然后调用 execl。这一切都很完美,除了一个恼人的例外。如果要执行的 shell 命令是一个守护进程,它就不能正常工作。在这种情况下,它只是挂起。我不知道为什么。我的理解是,当守护进程启动时,它通常会分叉,然后父进程退出。由于我的应用程序有一个到父级的开放管道,因此当父级退出时,对 read() 的调用应该会失败。但相反,应用程序只是挂起。

这是一些重现问题的基本代码:

}

如果您将其与普通的 shell 命令一起使用,则该代码可以正常工作。但是,如果您尝试运行守护程序,它只会挂起,而不是按应有的方式返回到提示符。