我创建了一个外壳脚本test.sh,该脚本在Android的init.rc中作为服务运行。 该脚本运行,但是如果我尝试回显任何内容,则控制台中看不到任何输出。 我可以使用以下命令从init.rc编写调试输出:

write /dev/kmsg "running test script"

但是如果我做一个

echo "test output"

从test.sh中,我在控制台或logcat中什么都看不到。

有任何想法吗?

谢谢

马龙

编辑:这是我正在测试的脚本:

#!/system/bin/sh 
echo "Testing!"

以及init.rc中的相关行:

chown system system /data/test.sh
chmod 0774 /data/test.sh

# Periodic service test
service periodic_test /data/test.sh
class main

#1楼 票数:0

当它们的标准输出重定向到/ dev / null时,Android初始化“框架”会在init.xxx.rc文件中分叉进程指定的服务,因此您不会在控制台上看到调试打印。

请注意,console和logcat是正交的,即使在init进程未调用的普通shell脚本中,echo“ bla”也不会反映在logcat中。

可能的跟踪方法与您对dmesg所做的一样,或使用本机代码(将从脚本中调用)与logcat接口

  ask by translate from so

未解决问题?本站智能推荐:

3回复

无法通过Android中的init.rc启动新服务

我正在默认Android中修改init.rc以包括我创建的新服务。 它只是我在初始化过程中运行一次的脚本文件(seed_generator.sh)。 但是我收到以下错误: 类型= 1400审核(1462942010.690:5):AVC:对于pid = 52 comm =“ init”
1回复

init.rc中的事件在哪里启动?

我一直试图了解init.rc中的事件在哪里开始的。 on fs mount yaffs2 mtd@system /system on property:vold.decrypt=trigger_reset_main class_reset main 我知道的一件事是,可以使用in
4回复

什么是android中的init.rc语言?

我需要了解init.rc的格式 在init.rc中有如此manny服务。 其中之一是 这里什么意义disabled , oneshot出于什么目的这一切都在这里吗? 我已经参考了这篇文章,但没有得到这么多。
2回复

在init.rc中禁用android服务

我正在开发一个新的硬件平台,我需要在其上安装Android操作系统。对于初始测试,我需要停止Android init.rc文件中的所有Android服务。 我在我的代码库中搜索了init.rc文件./bootable/diskinstaller/init.rc ./bootable/recov
1回复

init.rc中的mkdir

初始化文件 编号264 --- mkdir /data/misc/radio 0770 radio radio 我想将/ data / misc / radio的权限更改为0775。 我已经在上面的行旁边写了这行:No-265 --- chmod 0775 /data/misc/ra
1回复

停止守护程序在Android的init.rc中运行

有没有一种方法可以将某种事件发送到Android init进程,以在守护程序死后停止重新启动它? 在Android 4.3之前,可以替换文件init.rc ,但是现在,如果不刷新整个文件系统就无法覆盖它。
1回复

如何在android“init.rc”中设置“ulimit-cunlimited”

https://android.googlesource.com/platform/system/core/+/master/init/README.md 从上面的链接,我发现有“ setrlimit ”用于“ 设置资源的rlimit ”。 我试图通过添加命令“ setrlimit 4
3回复

在Android中从init.rc执行本机文件

我想从init.rc执行来自vendor / bin的文件。 下面的代码我已经添加到我的init.rc文件中 在此处添加了属性sys.test.hello ,以检查该属性是否被调用。 我可以看到执行后该值更新为62。 此处的问题与exec - system system -- /ve