команда тайм-аута не вступает в силу

#php

Вопрос:

Итак, я пытался выполнить скрипт, используя команду timeout в php на ubuntu

код:

 $output = shell_exec("cd ../; timeout $time perl test.pl 127.0.0.1 80");
 

Но я заметил по проценту процессора, что он не останавливается, когда должен.

Я пытался найти решение для этого в течение нескольких дней, но не смог его найти, я использую php7.2, если это поможет

Комментарии:

1. На самом деле не так уж много, чтобы продолжать, в чем ценность $time ? Если команде тайм-аута не задан надлежащий интервал, то она фактически ничего не сделает. Правильно ли работает эта команда, если вы повторяете строку и копируете, вставляете ее в командную строку?

2. @RyanH Команда отлично работает при запуске в командной строке, я не пытался повторить строку, но $time-это просто переменная, которая получает время из URL-адреса следующим образом: example.com/test.php?time=20

3. @RyanH Я, возможно, должен добавить, что это работало отлично, но мне пришлось перезагрузить сервер из-за проблемы с операционной системой, я не вносил никаких изменений в файл до и после этого сброса, и он внезапно перестал работать.

4. Я бы рекомендовал повторить сгенерированную строку и убедиться, что ее содержимое соответствует тому, что вы ожидаете от выполнения команды оболочки. … убедитесь, что команда запускается с правильного места …. видеть shell_exec ужасно, но видеть » cd » в команде еще страшнее … проверьте, что пользователь, запускающий экземпляр apache/nginx, имеет разрешения как на файл, так и на исполняемый файл perl. … многое может произойти с файловой системой/конфигурациями/пользователями при перезапуске.

5. @RyanH Я попробовал повторить это, и вот что у меня получилось: cd ../; тайм-аут 5 перл test.pl 127.0.0.1 80, И это правильные аргументы, которые я ввел