Всем привет! Задача такая, есть проект на FreePascal, кросс-компиляция настроена на ARM-Linux, после компиляции вызывается скрипт upload.sh
#!/bin/sh
clear
PROJECT_PATH=$(dirname $(dirname $(dirname `readlink -e "$0"`)))/bin/;
TARGET_IP=192.168.201.26
EXEC_FILE=pdd
REMOTE_DIR=/root
# Убиваем процессы
if [ $(ssh root@$TARGET_IP pgrep $EXEC_FILE)>'0' ]
then
echo "Пытаемся убить pdd:";
ssh root@$TARGET_IP killall $EXEC_FILE;
echo " - ок";
fi;
if [ $(ssh root@$TARGET_IP pgrep gdbserver)>'0' ]
then
echo "Пытаемся убить gdbserver:";
ssh root@$TARGET_IP killall gdbserver;
echo " - ок";
fi;
# Определяем расположение файлов
if [ -f "/root/pdd" ]; then
echo "Удаляем старую локальную копию:" $REMOTE_DIR/$EXEC_FILE
rm $REMOTE_DIR/$EXEC_FILE;
echo " - ок";
fi;
echo "Делаем новую локальную копию:";
cp $PROJECT_PATH/$EXEC_FILE $REMOTE_DIR/$EXEC_FILE;
echo " - ок";
echo "Переносим на ARM SOC" $PROJECT_PATH/$EXEC_FILE;
scp $PROJECT_PATH/$EXEC_FILE root@$TARGET_IP:$REMOTE_DIR;
ssh root@$TARGET_IP chmod +x ./$EXEC_FILE;
echo " - ок";
echo "Запускаем на удалённой машине gdbserver";
ssh root@$TARGET_IP 'gdbserver :2345 /root/pdd';
echo " - ок";
Как видно исполняемый файл pdd отправляется на удалённую машину и там должен запуститься gdbserver и на этом выполнения скрипта следует завершить, НО выполнение скрипта не заканчивается до завершения gdbserver'a =( Следовательно, следующую команду надо выполнить на удалённой машине без считывания её вывода и без ожидания завершения:
ssh root@$TARGET_IP 'gdbserver :2345 /root/pdd';
Помогите плиз.