2012-10-24 2 views
-1

Это система Ubuntu. Когда пользователь отправляет задание на наш сайт, я хочу запустить его как пакетное задание. Cmd.sh - это сценарий оболочки. При запуске вручную в терминале сценарий выполняется отлично, но по какой-то причине не будет выполняться как пакетное задание. Текущий PHP:Пакетная команда в системе PHP

system("echo /var/www/dbCAN/data/blast/$jobid/cmd.sh | batch"); 

Это не печатает ошибку или не удается, она просто не отправляет задание. Кроме того, если я изменю этот код, чтобы просто удалить «| пакет», файл будет выполняться нормально. Причина, по которой я не хочу запускать ее напрямую, - это интенсивный процесс, который может занять некоторое время, и мы обычно отправляем сообщение пользователю по электронной почте, когда их работа завершена (и не запускает сразу несколько заданий). У кого-нибудь есть идеи, почему это не работает? Я знаю, что путь правильный, но я не уверен в использовании пакетов. Помощь ценится :)

+1

Проверьте файлы '/ etc/at.allow' и'/etc/at.deny', чтобы узнать, разрешен ли веб-пользователь использовать 'at' и' batch'. – Barmar

+0

^at.deny имел в нем www-данные, которые были частью проблемы. Благодаря! – Nathan

ответ

0

От man batch:

Для обоих в и партии, команды считываются со стандартного ввода или файла, указанного с опцией -f и выполняется.

Возможно, попробуйте batch -f /var/www/dbCAN/data/blast/$jobid/cmd.sh? не

Видимо, batch больше не поддерживает аргументы (я batch accepts no parameters, когда я попытался запустить его с -f аргументом). Далее работал то же самое для меня (очевидно, используя другой путь к файлу):

at -q b -m now -f /var/www/dbCAN/data/blast/$jobid/cmd.sh 

Код: #419547 - at: batch no longer accepts parameters.

+0

К сожалению, я попробовал это, и поведение не изменилось, оно все равно не добавлено объявление пакетного задания (или выполнено). – Nathan

+0

Вы просто хотите запустить его в фоновом режиме? Если да, то что-то вроде 'bash /var/www/dbCAN/data/blast/$jobid/cmd.sh &' работает ?. – adamdunson

+0

Собственно, вы, вероятно, должны игнорировать мое предыдущее предложение. Не очень хорошая идея позволить пользователям создавать фоновые задания. – adamdunson

Смежные вопросы