Ubuntu -работает без головы с VNC, также NetworkManager медленно «блокируется» (серые кнопки)

Это базовая оболочка расширение . Поскольку вызывающая оболочка распознает *как подстановочный знак, она фактически интерпретирует это для вас и передает список всех элементов в /var/ вашему сценарию.

Если вы экранируете подстановочный знак или заключаете в подстановочный знак, чтобы предотвратить его раскрытие в вызывающей оболочке, он будет передан вашему сценарию так, как вы ожидаете.

Вот два примера, которые, вероятно, сделают то, что вы хотите, если я правильно понимаю ваше намерение.

  • /path/to/script.sh '/var/run/*'
    • Этот пример предотвращает интерпретацию оболочки, помещая звездочку в строку с одинарными кавычками, которая обходит расширение и передается сценарию как -.
  • /path/to/script.sh /var/run/\*
    • В этом примере из расширения оболочки просто экранируется одиночный символ звездочки.

Оба этих примера приводят к тому, что строка /var/run/*передается КАК -ЕСТЬ вашему сценарию, где она становится $1.

1
28.09.2020, 14:10
1 ответ

Предполагая, что это новая установка Ubuntu и файлы конфигурации более или менее находятся в состоянии по умолчанию, вы можете сделать следующее. Первый,используйте nmcli d, чтобы получить некоторые сведения о вашей текущей настройке сети, а именно имя вашего устройства Ethernet, так как я буду использовать значение по умолчаниюeth0

1. Начните с просмотра вашего /etc/network/interfacesфайла

.

По пути /etc/network/interfacesнаходится файл, который является одним из самых основных файлов конфигурации для NetworkManager, поскольку в нем содержатся сведения о конфигурации при использовании команд ifupи ifdown.

В состоянии по умолчанию вывод cat /etc/network/interfacesбудет выглядеть примерно так:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).


# The loopback network interface
auto lo
iface lo inet loopback


auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Первая часть отвечает за петлю соединения с локальным хостом, и вы должны оставить ее в покое, а вот вторая часть вас интересует.

Если вы используете NetworkManager для управления подключениями, в его файле конфигурации в /etc/NetworkManager/NetworkManager.confбудет указано:

[ifupdown]
managed=true

и будет обращаться к этому файлу interfacesдля настройки.

auto eth0означает активацию интерфейса eth0, а линии auto [interface name]обычно активизируются при запуске.

allow-hotplug eth0означает вызов сетевого интерфейса eth0, когда udevобнаруживает подключение нового сетевого кабеля.

iface eth0 inet dhcpозначает сетевой интерфейс (iface )eth0, использующий сеть IPv4 (inet ), которому будет назначен адрес (dhcp ).


2. Отключите DHCP для вашего Ethernet-соединения.

Чтобы eth0 использовал статический IP-адрес, необходимо изменить последнюю строку iface eth0 inet dhcp(Я не знаю ваш формат IP-адресации, поэтому я собираюсь использовать общий по умолчанию, и вы можете изменить что соответственно от )до:

iface eth0 inet static
address 192.168.1.123/24
gateway 192.168.1.1

адрес 192.168.1.2/24устанавливает IP-адрес и сетевую маску на 255.255.255.0, а последняя строка указывает шлюз на192.168.1.1

После внесения изменений с правами sudoсохраните файл interfaces.

3. Перезапустите обе сетевые службы на машине

.

Выполнить:

sudo service networking restart && sudo service NetworkManager restart

Служба networking, если вы посмотрите на ее файл .service, на самом деле выполняет ifup -a --read-environment, который ссылается на файл /etc/network/interfaces.

4. Что это означает для подключений, выполненных с помощью диспетчера подключений с графическим интерфейсом

Если у вас есть iface eth0 inet dhcpв interfacesвместе с allow-hotplug, то в тот момент, когда вы подключите кабель Ethernet, система попытается получить правильный IP-адрес от DHCP-сервера. Поскольку на вашем Mac не работает DHCP-сервер, соединение в конечном итоге будет прервано по тайм-ауту. Причина, по которой вы можете разбудить его при повторном подключении разъема, заключается в том, что udevснова обнаружит новое устройство, и будет вызван ifup, чтобы попытаться вызвать его.

Такое поведение тайм-аута типично при подключении ПК к любому встроенному устройству для передачи по сети без запуска DHCP-сервера для адресации. Однако, если вы сначала вручную назначите статический IP-адрес встроенному устройству (Raspberry Pi )из той же подсети, что и ПК, передача будет работать нормально.

Беспроводной интерфейс wlan0будет удерживаться в течение этого тайм-аута eth0.

При нормальных обстоятельствах и с более или менее установленными настройками установки после -по умолчанию диспетчер соединений с графическим интерфейсом и соответствующие профили для eth0всегда будут вторыми после того, что находится в вашем файле /etc/network/interfaces, поскольку это будет прочитано в тот момент, когда вы подключите кабель Ethernet.


Изменение IP-адресации с dhcpна staticв /etc/network/interfacesи перезапуск сетевых служб должны решить вашу проблему

0
18.03.2021, 23:02

Теги

Похожие вопросы