2015-05-22 4 views
0

Я создал Bash Shell скрипт .. С этими словами я могу обрезать и конвертировать видео локально ..Bash Shell Script Удаленный Фоновая обработка

nohup ffmpeg -i "$c1" -vf "$crop_value1" -b 1800k "/home/Cropped/""$name1"_cropped.mp4"" > crop1.txt & 
PID1=$! 
nohup ffmpeg -i "$c2" -vf "$crop_value2" -b 1800k "/home/Cropped/""$name2"_cropped.mp4"" > crop2.txt & 
PID2=$! 
nohup ffmpeg -i "$c3" -vf "$crop_value3" -b 1800k "/home/Cropped/""$name3"_cropped.mp4"" > crop3.txt & 
PID3=$! 
nohup ffmpeg -i "$c4" -vf "$crop_value4" -b 1800k "/home/Cropped/""$name4"_cropped.mp4"" > crop4.txt & 
PID4=$! 
wait $PID1 
wait $PID2 
wait $PID3 
wait $PID4 

Как видно из приведенного кода Im Использование 4 преобразования в фоновом режиме в локального сервера и Я использую Wait PID, чтобы проверить, завершена ли беседа или нет.

Моя проблемой является его принимать очень поздно конвертировать .. Так что я Думая преобразования одного преобразования в местном Sever и еще три в различном удаленном сервере, через SSH Примера:

ssh [email protected] "nohup ffmpeg -i "$c1" -vf "$crop_value1" -b 1800k "/home/Cropped/""$name1"_cropped.mp4"" > crop1.txt &" 

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

+0

Почему вы взываете к каждому слову в предложении? – Barmar

+1

Не помещайте удаленную команду в фоновом режиме, просто положите команду 'ssh' в фоновом режиме. – Barmar

+0

Команда SSH на заднем плане? Я не могу понять, –

ответ

1

Поместите команду ssh в фоновом режиме, не удаленная команда:

ssh [email protected] "nohup ffmpeg -i "$c1" -vf "$crop_value1" -b 1800k \ 
    "/home/Cropped/""$name1"_cropped.mp4"" > crop1.txt" & 
PID1=$! 

Кстати, вам не нужен wait команду для каждого фонового процесса. Если вы запустите wait без аргументов, он ждет всех фоновых процессов.

+0

Мне нужно дождаться завершения всего фонового процесса, поэтому я использую PID wait..поэтому следующей моей команде нужны обрезанные видео в качестве входных данных –

+0

Вот что он делает, он ждет завершения всех фоновых процессов. – Barmar