【发布时间】:2015-04-29 20:34:28
【问题描述】:
嵌入式设备上使用 Busybox 的守护程序应该用 C 语言还是脚本编写?
我看到的所有示例都在文件顶部使用#! /bin/ash,那是为了编写脚本?但在我正在写入的设备中,/usr/bin 中只有编译的 C 文件(我认为)和符号链接。
我尝试使用#include </bin/ash>(例如gcc -Wall -o daemon_busybox daemon_busybox.c)编译C 文件的每一种方式都在/bin/ash 中报告错误后出现错误:
/bin/ash:174:1: 错误:程序中出现杂散“\213”
/bin/ash:174:1:错误:程序中出现杂散“\10”
/bin/ash:174:1: 错误:程序中出现杂散“\273”
/bin/ash:174:1: 错误:程序中出现杂散“\204”
/bin/ash:174:1: 错误:程序中出现了“\342”
注意我已经设置了这个:/bin/ash -> busybox
有什么想法我应该走哪条路吗?
更新:
我的任务是查看是否可以在运行 Linux (2.6.35-at-alpha4) 和 Java (SE Embedded Runtime Environment) 且内存非常有限的小型设备上运行守护程序(即等待 10 秒以获取 java -version 报告)。
两周前,我对守护进程了解不多——只知道这个词。所以,这对我来说都是新的。
在我的开发机器上,我构建了两个不同的守护程序文件,一个在 C 中,一个作为脚本。两者都在我的 Linux 机器上运行得非常好。
但是由于目标设备的尺寸非常小,所以只有busybox(没有/lib/lsb/init-functions)。所以我正在尝试构建第三个守护程序文件。我认为应该为这个设备用 C 语言编写它,但是busybox 的所有示例都指向脚本。
【问题讨论】:
-
听起来你正试图像运行一个shell脚本一样运行一个编译过的程序。
-
你意识到 C 程序是用例如编译的。首先是 GCC,对吗?此外,Java 与这些有什么关系?我不确定现在谁更困惑;你或我。
-
Jonathon Reinhart - 感谢您仔细阅读我的帖子 (^.^)v
-
这个守护进程到底是做什么的?
-
现在只是一个测试,看看我们是否可以在我们的设备上运行一个守护进程。