Shell脚本无法执行。

3

我在我的Galaxy S3上安装了CM12.1。我正在尝试设置SSHD。目前一切正常,除了最后一步:启动sshd守护进程。

问题在于脚本

/data/local/userinit.sh

将被执行,但是其中的调用不再起作用。

这是脚本:

#!/system/bin/sh

if [ -e /data/local/userinit.d/99sshd ]
then
   log -p i -t userinit "Launching /data/local/userinit.d/99sshd--before"
   /system/bin/sh /data/local/userinit.d/99sshd
   log -p i -t userinit "Launching /data/local/userinit.d/99sshd--after"
fi
这个脚本非常简单,只是用于调试:
#!/system/bin/sh

log -p i -t userinit "Executing /data/local/userinit.d/99sshd"

这是来自logcat的结果:

userinit - 启动 /data/local/userinit.d/99sshd--before

userinit - 启动 /data/local/userinit.d/99sshd--after

缺失的信息是:

userinit - 执行 /data/local/userinit.d/99sshd

怎么会发生这种情况?!


你能手动运行它作为测试吗? - Chris Stratton
是的,从终端没有问题。 - bangkokguy
大家好,我发现文件系统出了点问题:在执行时脚本不在那里。非常感谢任何熟悉Android启动过程的人提供帮助。 - bangkokguy
这可能与此相关:http://wiki.cyanogenmod.org/w/Doc:_sshd#Problem_with_SELinux_.2F_SEAndroid_on_CM_12.1 - andrew-e
这只是一个猜测,因为我没有G3进行测试。这行代码:“/system/bin/sh /data/local/userinit.d/99sshd”,会在子shell中执行99sshd吗?也许这就解释了缺失的部分,就像这里'$x'丢失的方式一样:**echo -e "x=yes\necho $x\n" > foo ; bash foo ; echo :$x:**。 - agc
嘿 sudoman,你是王者! :) 谢谢你! - bangkokguy
1个回答

1

从CM12和CM13开始,支持init.d和userinit.d 已移除


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接