Изменение диапазона временных портов может вызвать проблемы, если вы используете Mesos .
Mesos объявляет ресурсы хоста различным Mesos Framework , которые затем могут использовать объявленные ресурсы. Объявленные ресурсы включают ЦП, память, порты и т. Д. Набор портов по умолчанию, который объявляет Mesos, составляет 31000-32000 . Это позволяет избежать конфликта с диапазоном временных портов Linux по умолчанию 32768-61000 .
Примечательно, что Mesos не знает, используется ли порт каким-либо другим процессом, он просто отслеживает назначение портов объектам, которые он управляет ( Mesos Tasks и Mesos Executors ]). Таким образом, если вы измените диапазон эфемерных портов так, чтобы он перекрывался с диапазоном портов Mesos, вполне вероятно, что какой-то произвольный процесс будет использовать эфемерный порт, который на самом деле является одним из этих «портов Mesos». Это может привести к тому, что Mesos будет предлагать этот порт для Mesos Framework , который столкнется с кажущимися случайными сбоями его Mesos Executors и / или Mesos Tasks , поскольку они будут невозможно подключиться к этому порту.
Если вам нужно увеличить диапазон эфемерных портов, а также запустить Mesos, то вы можете изменить объявленные порты с помощью подчиненного мезо
(скоро будет переименован в mesos-agent
) параметр конфигурации - ресурсы
.
sudo
устанавливает ограниченный PATH
, поэтому он не найдет ваш локальный скрипт. Вы можете настроить его так, чтобы он не env_reset
для данного пользователя и так далее, но, пожалуй, самое простое — написать свой собственный -строковый mysudo
скрипт, который выполняет:
#!/bin/sh
exec sudo -s PATH="$PATH" exec "$@"
, а затем произнесите mysudo somecommand...
вместо sudo somecommand...
. Он попросит sudo запустить оболочку, вернуть PATH
к тому, что было, а затем запустить вашу команду, найденную по этому исходному пути.
PATH
— это переменная среды в операционных системах, таких как Linux, Windows, которые имеют определенный набор каталогов, в которых находятся исполняемые программы. Согласно вашему вопросу, ваш исполняемый скрипт находится в каталоге $HOME/bin
. Поэтому, если вы хотите запустить скрипт, которого нет в PATH, вам нужно указать полный структурный путь к файлу, чтобы ОС могла получить доступ к файлу для его выполнения. Например,
sudo $HOME/bin/<nameofthescript>
Если вы не хотите все время указывать полный путь к файлу, вы можете поместить этот путь к файлу в среду veritable, используя приведенную ниже команду. Учитывая, что вы сохранили свой скрипт в каталоге $HOME/bin
.
PATH=$PATH:$HOME/bin
Приведенная выше команда добавит каталог bin в путь среды, после чего вы сможете использовать <nameofscript>
из любой точки системы. Кроме того, это будет работать только до тех пор, пока ваш bash не будет запущен, если вы попробуете то же самое в новом терминале, ваш PATH изменится на значение по умолчанию. Чтобы сделать его постоянным, вам нужно добавить строку ниже в файл $HOME/.profile
или $HOME/.bashrc
.
export PATH=$PATH:$HOME/bin
Чтобы позволить только пользователю root выполнять <nameofscript>
из любого места,вы можете поместить в каталог /sbin
или /usr/sbin
.