ожидать команды зависает на разных этапах сценария - PullRequest
0 голосов
/ 23 января 2019

У меня есть скрипт автоматизации, который устанавливает новый образ "flash.sh", я пытаюсь запустить флэш-скрипт из географически другого места, когда я использую команду "ожидать", чтобы вызвать скрипт скрипта, который неожиданно зависает на другом этапы в сценарии при разных запусках .. Вызов ..

 expect -c 'set timeout 1800;exp_internal 1;match_max 10000;spawn ssh root@client "sh /tmp/flash.sh 'root@server:/loc/test.sdcard'";expect "*?assword:"; send "pass\r"; interact'

скрипт flash.sh, создающий монтирование с использованием pivot_root, перемещение монтировок и, в конце концов,

dd if=./$IMAGE_FILENAME of=/dev/mmc.. bs=1M

Я попытался добавить отладку и добавить сон в удаленный сценарий, но все еще в том же режиме. после нажатия cntrl + c

    Killed by signal 2.
interact: received eof from spawn_id exp6
tty_set: raw = 0, echo = 1
argv[0] = expect  argv[1] = -c  argv[2] = set timeout 1800;exp_internal 1;match_max 10000;spawn ssh root@xx.xx.xx.xx  "sh /tmp/sw_flash.sh root:/loc/test.sdcard";expect "*?assword:"; send "pass\r"; interact
set argc 0
set argv0 "expect"
set argv ""
tty_set: raw = 5, echo = 0

Я также использовал режим отладки, но не выдавал ошибку или таймаут PS: когда я запускаю один и тот же скрипт на машине в том же географическом местоположении, все команды проходят, как и ожидалось.

Пожалуйста, помогите .. боролись уже несколько дней

Редактировать 1: Добавив подробное описание и изменив взаимодействие, ожидая EOF, мне пришлось убить с помощью Cntrl + C

 expect: does " \r\nunmounting /mnt/net and recreating this directory\r\numount: /mnt/net: mountpoint not found\r\nprovided path is not mounted\r\ncreating /mnt/net was successful\r\nstopping services\r\nCan't find /test/service/main.pyc! Using /test/service/main.py instead.\r\nStopping Service: /usr/bin/python3 /test/service/main.py\r\nSUCCESSFULLY STOPPED\r\nmounting remote rootfs from test@server:/test/images/latest at /mnt/net\r\nsshfs mount command was successful\r\nwaiting for 120 seconds for the system to be ready for rootfs change in case it is not\r\nchanging rootfs to ./mnt/net/oldroot\r\nwaiting for 120 seconds for the system to be ready for rootfs change in case it is not\r\n" (spawn_id exp6) match glob pattern "EOF"? no
^Csighandler: handling signal(2)
async event handler: Tcl_Eval(exit 130)
...