2016-04-26 365 views
-1

我想从我的script1.sh这是在主机上运行做到这一点如何启动一个shell脚本的过程从另一个shell脚本

#!/bin/sh 

# adb shell "sh /sdcard/script2.sh &" 

script2.sh是A​​ndroid设备上的内部/ SD卡/文件夹。

我想让script2.sh继续在Android上运行。 script2.sh具有无限循环。 但上面的命令不起作用。一旦script1.sh退出,script2.sh就会停止。

我也曾尝试

# adb shell "exec sh /sdcard/script2.sh &" 

但这也不起作用。

回答

1

在您的父shell脚本中,提取子进程script2.sh的pid。 ,然后使用wait system命令等待其完成。

wait <PID> 

请参阅此link了解更多详情。

+0

我不想等。我想要我的第一个脚本退出。 –

0

亚行壳 “的nohup SH /sdcard/script2.sh &”

相反EXEC你可以使用的nohup的。 nohup所做的是在脚本1退出后,它将脚本2作为init进程的子进程(所有进程的父进程)。

+0

感谢您的回答。 如果我用nohup的,指挥的作品,如果我直接执行它的Android设备上 SH的nohup -l /sdcard/script2.sh& 但如果我从我的主机执行不工作: 亚行壳“的nohup SH/sdcard/script2.sh&“ 我以root身份启动了adb会话(adb root),所以没有权限问题。 –

+0

你得到的错误是什么? – sriramganesh

+0

没有得到任何错误,但script2.sh应该保持记录数据到Android设备上的日志文件,这是不会去日志文件。 如果我直接在android设备上执行命令“nohup sh /sdcard/script2.sh -l&”,我会看到进入日志文件的数据。 –

相关问题