c++跨平台后台任务

Posted

技术标签:

【中文标题】c++跨平台后台任务【英文标题】:c++ Cross platform background task 【发布时间】:2016-01-12 13:27:18 【问题描述】:

我试图弄清楚如何开发一个跨平台程序,该程序将在后台运行,并且在系统启动后就可以运行。

我只想介绍 Windows 和 Linux。我知道没有线程这样的东西,只有进程。 所以.. 在 Linux 中,我需要在 Windows 中制作守护程序或服务。

我知道它们中的每一个是如何以逻辑方式工作的,但我不知道如何编写它。

我会感谢我能得到的每一个帮助。 谢谢!

【问题讨论】:

你试过问谷歌吗? This SO post 总结了 Linux 的步骤。我确信 Windows 也存在类似的答案。 【参考方案1】:

您只需要在系统启动后运行您的程序。它与线程和东西无关。

将特定于操作系统的东西包装在

#if defined _WIN32
    #include <windows.h>
    int ret = ShellExecute(hwnd, "runas", "see link below for windows", NULL, "c:\\windows\\system", SW_SHOWNORMAL );
#elif defined __linux__
     int ret = system("see link for linux");
#else
     #error Err
#endif

Windows的链接

Linux 的链接 - 对于 linux 案例,您需要调用几个命令来创建启动脚本并将它们添加到 chkconfig

【讨论】:

以上是关于c++跨平台后台任务的主要内容,如果未能解决你的问题,请参考以下文章

linux后台任务部署平台Tac

如何从 C++ 后台任务(Windows 通用应用程序)调用 C# 函数?

hangfire+bootstrap ace 模板实现后台任务管理平台

如何搭建Devops平台定时任务处理集群

手把手教你搭建Devops平台定时任务处理集群

使用 WorkManager 处理需要立刻执行的后台任务