【问题标题】:How to effectively run a background Processing and Logging of Data (Debian, Beaglebone Black)如何有效地运行后台数据处理和记录(Debian,Beaglebone Black)
【发布时间】:2015-01-21 13:39:14
【问题描述】:

我正在寻求解决我面临的实施问题的帮助。我是嵌入式环境和 RTOS 方面经验丰富的 C/C++ 程序员,但在 linux 方面我是新手。

我有一个运行 Debian 的 beaglebone black。我需要记录和处理来自连接到 I2C 总线和 ADC 的传感器的数据。我已经编写了用于从连接的传感器收集数据的处理程序函数,那里没问题,它们工作正常。我想实现(类似于 RTOS)一个定时器中断,它可以将进程扔给我的处理程序函数,以便他们可以做他们的事情,我希望它在后台运行。即我不想捆绑外壳或其他任何东西,以便用户可以做其他事情。我正在阅读 timer_create 是在 Debian 中执行此操作的一种方法,或者使用 fork()-exec() 但我想我会先询问有 Linux 经验的人,然后再走任何特定的路径!此外,也不是 100% 确定如何使用这些功能。

旁注:我知道计时器等在 Linux 中的准确度不高,除非您正在实施抢占式内核或其他任何东西,这本身就是另一个问题,但是这个问题的时间限制接近 10 -50ms,不是很紧。

谢谢

【问题讨论】:

    标签: c++ c linux debian beagleboneblack


    【解决方案1】:

    做一个守护进程,可以参考一下:

    https://github.com/memcached/memcached/blob/master/daemon.c

    【讨论】:

    • 但是为这个特定的应用程序创建一个守护进程是正确的方式吗?守护进程是在用户空间还是内核空间中使用?抱歉,我对 linux 编程比较陌生
    • 在 linux 中,守护进程是一个普通的进程,不附属于终端,运行在用户空间中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    相关资源
    最近更新 更多