#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, И это правильные аргументы, которые я ввел