2013-07-26 2 views
0

У меня есть сценарий tftp, который при запуске просто зависает и приводит меня к пустой строке (которая говорит мне, что она висит). Я могу бросить скрипт Ctrl + C ...Как выйти из TFTP-скрипта

#!/bin/bash 
hostname=$1; 
filename=$2; 

tftp <</dev/null 
mode binary 
get $hostname:$filename 
quit 

Я также попытался добавить EOF в конце сценария, но это не работает.

Вот моя командная строка ...

$ ./tftpShell.sh host1 myFileName >/home/aayerd200/tftpoutput.txt 2>/home/aayerd200/tftperror.log 

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

Конечно, host1 и myFileName являются действительными полями, которые я заменил здесь для обеспечения безопасности.

Как остановить этот скрипт? Я считаю, что это просто tftp, зависающий на $ ps -u aayerd200, или при запуске php $ ps -u daemon

ответ

1

У вас есть/dev/null как документ «разделитель» здесь. Попробуйте использовать случайный набор символов, таких как EOF, что не имеют смысла для оболочки. И прекратить здесь-Doc

tftp <<-EOF 
mode binary 
get $hostname:$filename 
quit 
EOF 
+0

Я все еще получаю зависание в процессе tftp. – harmonickey

0

Хорошо, так что я только что сделал это фоновый процесс путем добавления & к концу команды. Затем я запустил $ echo $! для ПИД. Затем я запустил $ kill PID.

Это было мое решение для этого, на данный момент, по крайней мере.