Android adb等待设备不在jenkins作业中工作,但在ssh会话中工作

Android adb等待设备不在jenkins作业中工作,但在ssh会话中工作,android,android-emulator,jenkins-pipeline,adb,adb-shell,Android,Android Emulator,Jenkins Pipeline,Adb,Adb Shell,我有一台运行macOS Catalina OS的Mac微型计算机,这是一台运行声明性管道的Jenkins从机 如果我连接到ssh并使用以下命令运行模拟器: emulator -avd Pixel_2_API_28_-_Android_9 -wipe-data -no-snapshot & adb wait-for-device -s emulator-5554 shell 'while [[-z $(getprop sys.boot_completed) ]]; do sleep 1;

我有一台运行macOS Catalina OS的Mac微型计算机,这是一台运行声明性管道的Jenkins从机

如果我连接到ssh并使用以下命令运行模拟器:

emulator -avd Pixel_2_API_28_-_Android_9 -wipe-data -no-snapshot &
adb wait-for-device -s emulator-5554 shell 'while [[-z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
然后等待命令准备就绪:

emulator -avd Pixel_2_API_28_-_Android_9 -wipe-data -no-snapshot &
adb wait-for-device -s emulator-5554 shell 'while [[-z $(getprop sys.boot_completed) ]]; do sleep 1; done;'
一切正常,几秒钟后我得到命令提示符,可以在本地运行appium测试

当我在声明性管道中运行与jenkins jobs相同的命令(以及我在这里和其他地方发现的许多类似命令,您可以在下面看到这些命令被注释掉)时,问题就出现了

相同的“adb wait for device”命令将挂起,直到作业达到其120分钟超时限制

我尝试了以下方法,这是我的“等待启动模拟器”管道阶段(“DEVICEID”变量是我从另一个作业中获得的参数)

下面是开始模拟器部分:

stage('Run Emulator') {
    steps {
        sh '''
            #!/usr/bin/env bash

            # Start adb daemon
            adb start-server

            # Start android emulator
            emulator -avd ''' + AVDEMULATOR + ''' -wipe-data -no-snapshot &
        '''
    }
}
还有别的方法我还没找到吗

提前谢谢