Несколько последовательных задач exec в одном скрипте bash

0

Я пытаюсь запустить следующие две задачи в сценарии bash, который запускается из сценария php. Оба они выполняются правильно, когда я комментирую другой, так что, очевидно, я неправильно описал всю работу.

Они должны запускаться последовательно, а не параллельно, поэтому первый exec должен завершиться до начала второго запуска...

Я также должен отметить, что переменные передаются из скрипта php, который запускает его (в случае его соответствия).

#!/bin/bash

Udata1=$1
Udata2=$2

#Encode incoming audio file to 128k MP3 using avconv
exec avconv - i /var/www/html/tracks/$Udata1/$Udata2 -ab 128k /var/www/html/tracks/$Udata1/serve/$Udata2.128k.mp3;

#Encode 128k MP3 generated above to WAV using avconv
exec avconv -i /var/www/html/tracks/$Udata1/serve/$Udata2.128k.mp3 /varwww/html/dump/$Udata2.wav

exit;

Я предполагаю, что я окончательно спрашиваю, как запустить несколько exec в том же сценарии.sh?

  • 2
    a bash script being triggered from a php script должен быть уверен, что вы хорошо осведомлены о последствиях безопасности для этого.
  • 0
    Да, я полностью осознаю, спасибо. Запуск php это вызывается через включение на совершенно другой странице php. Это не так, как если бы он просто сидел на веб-сервере, чтобы посетители могли нажимать на него. Конечно, кто-то, кто знает, что делает и ищет, может нарушить это, но разве это не так на любом веб-сайте? Я ценю совет, хотя.
Показать ещё 4 комментария
Теги:
exec
avconv

1 ответ

1
Лучший ответ

exec заменяет текущий выполняемый процесс порожденным процессом. Он никогда не возвращается. Вы не можете exec две вещи.

Это говорит, что вам не нужно. Просто удалите exec из этих двух строк, и он должен работать нормально.

  • 0
    Взрыв! :) Хорошо, ты научил меня чему-то важному сегодня! Спасибо большое, Итан! Применимо ли то же самое, если бы я запускал смесь разных программ в одном скрипте?
  • 1
    Да. То, что вы бежите, не имеет значения. Команда - это команда, которая блокирует скрипт до его завершения, если вы не поместите его в фоновом режиме или он не окажется в фоновом режиме.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню