c++ - 我如何开始在类 Unix 操作系统(如 Linux)中编写守护进程?

标签 c++ linux unix ipc daemon

我正在用 PHP 开发一个工具供我个人使用。但是 PHP 非常慢,我需要做的任务需要很多时间,所以我会用 c++ 创建一个守护进程并将其保存在后台(它将在 VPS 中运行)。

PHP 将通过一个简单的 tcp 套接字连接到守护程序(我将尝试设计/使用一个简单的 IPC 协议(protocol))以提交任务。守护进程将使用简单的 FIFO 队列管理任务。 PHP 只会开始 任务,但不会等到任务结束,因为它可能需要几分钟(PHP 也会监视任务 - 但这是另一个话题)。

web/PHP 界面完全不会有问题。但是我没有 unix 守护程序编程的经验。我已经在 Linux 上用 C++ 制作了简单的控制台程序,所以我只需要一本手册/书籍/指南和建议来开始开发 Unix 守护进程。

谢谢。

最佳答案

http://www.enderunix.org/docs/eng/daemon.php提供了相当详尽但简短的介绍以及似乎涵盖所有重要部分的示例代码。如果您愿意花一些钱在纸上(值得,恕我直言),在“UNIX 环境高级编程(第 2 版)”中有更深入的描述。

上面的链接不涉及初始化脚本,但您可能可以通过一些搜索来解决这个问题——您所需要的只是某种启动守护程序代码的方式以及某种稍后向它发送信号的方式——通常,您编写守护进程的 PID 到/var/run/XXX 文件。

关于c++ - 我如何开始在类 Unix 操作系统(如 Linux)中编写守护进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620305/

相关文章:

c++ - C++ 中的 MySQL 段错误

linux - Pthreads 程序比串行程序慢 - Linux

linux - bash 猫多个文件

linux - 通过比较 shell 脚本中的两个字符串来请求变量

linux - shell 获取解析参数

c++ - 返回对绑定(bind)到临时的引用参数的引用时的悬空引用

c++ - 在 Qt 应用程序中获取命令行参数

c++ - 推导(非)模板类型的签名

linux - 为什么 GDB 以小数形式输出内存?

linux - 传递带有特殊字符的变量作为密码会破坏 bash 脚本。如何清理 bash 中的特殊字符?