Как запустить 5 php процессов, которые используют разные интерфейсы eth?
Я использую cron для запуска повседневного скрипта, который должен запускать 5 процессов php-cli. Мне нужно, чтобы они использовали отдельные интерфейсы.
У меня 5 устройств, eth0, eth1, eth2, eth3, eth4.
Как я могу вызвать php, чтобы убедиться, что он использует только один из них?
Это работает на Centos 6.6
2 ответа
Вот связанный пост от stackoverflow.
Вам нужно использовать вызов функции, как показано ниже, чтобы установить имя интерфейса или IP-адрес.
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
Почему вы хотите использовать разные интерфейсы в каждом случае? Если вы не тестируете интерфейсы и по какой-то причине не хотите делать это в php, то, вероятно, есть лучшее решение.
libcurl реализует такую функциональность, но я не уверен насчет привязки php к ней. Если его там нет, вы можете просто использовать curl
Команда напрямую через вызов оболочки. Со страницы руководства:
--interface <name>
Perform an operation using a specified interface. You can enter
interface name, IP address or host name. An example could look
like:
curl --interface eth0:1 http://www.netscape.com/
(Ничего себе.NETscape.com, а? Никто не просматривал эту справочную страницу в какое-то время).