如何从另一个shell脚本启动一个shell脚本作为进程

时间:2016-04-26 03:21:14

标签: android linux bash shell adb

我想从我在主机

上运行的script1.sh中执行此操作
#!/bin/sh

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

script2.sh位于/ sdcard /文件夹内的android设备上。

我希望script2.sh继续在Android上运行。 script2.sh有无限循环。 但上面的命令不起作用。 script1.sh退出后脚本会立即停止。

我也试过

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

但这也行不通。

2 个答案:

答案 0 :(得分:1)

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

wait <PID>

有关详细信息,请参阅此link

答案 1 :(得分:0)

adb shell&#34; nohup sh /sdcard/script2.sh& amp;&#34;

而不是exec,你可以使用nohup。 nohup的作用是,一旦script1退出,它就会使你的script2成为init进程的子进程(所有进程的父进程)。