shell_exec возвращает пустую строку

Когда я выполняю свою команду в PHP с помощью shell_exec она всегда возвращает пустую строку. Я попробовал shell_exec('ls -l'); и это работает. Я помещаю команду как отдельный файл и все тот же результат.

 $shellOutput = shell_exec("pacmd list-sinks | grep 'volume: 0:' | tail -1 | awk '{ print $3 }'"); //return execute status; echo trim($shellOutput); 

Я изменил sudoers на ALL ALL = (ALL): NOPASSWD ALL (очень не защищен, но просто чтобы найти что-то уверенное в работе),

то я сделал

sudo -u myusername /path/to/script.sh

где script.sh имеет экспорт VAR = значение export VAR = значение

для всех необходимых переменных окружающей среды (вы можете сделать printenv от пользователя, который может правильно выполнить pacmd, чтобы узнать, что вам нужно. Возможно, хороший ДОМ и, возможно, XAUTHORITY).

надеюсь, это поможет

В большинстве случаев скрипты php запускаются Apache, если это имеет место с вашим скриптом, то у пользователя Apache может не быть достаточных разрешений для запуска этой команды. Сначала проверьте это. Если его запустить как скрипт CLI, проверьте, может ли пользователь PHP запустить сценарий.

Возможно, именно поэтому

Попробуйте использовать систему