Переключение между сервером DHCP и клиентом на eth0

Как и говорилось в комментариях, ваш тест только показывает, что.desktop не является сценарием оболочки. Вот почему вы получаете все эти ошибки, а также почему вы получаете команду -jar, не найденную, поскольку в этом тесте вы фактически устанавливаете переменную «exec» = «java», после чего оболочка пытается запустить -jar, который она не найти.

Итак, сначала попробуй

 java -jar /home/edoardo/Scrivania/Giochi/Minecraft/Shiginima\ Launcher\ SE\ v3.100.jar

Если это не сработает, вам, возможно, следует сначала разобраться с этим.

Также вы можете установить свой Terminal=trueна данный момент, чтобы вы действительно получали вывод, когда щелкаете файл.desktop, чтобы вы могли видеть, что происходит.

0
17.06.2019, 09:48
1 ответ

Насколько я понимаю, один udhcpdбудет обслуживать только один сетевой интерфейс за раз, поэтому вам нужно будет запускать его вторую копию с отдельным файлом конфигурации всякий раз, когда вы хотите, чтобы он обслуживал DHCP на эт0 тоже. Это можно назвать /etc/udhcpd-eth0.conf.

Вам также могут понадобиться две копии /etc/network/interfacesв другом месте, одна с конфигурацией «DHCP-клиент» для eth0, а другая — с конфигурацией «DHCP-сервер». Назовем их, например, /etc/network/interfaces.eth0clientи /etc/network/interfaces.eth0server.

Следующий вопрос: хотите ли вы рассматривать «DHCP-сервер на eth0» как постоянное состояние, которое сохранится после перезагрузки до явного переключения обратно на «DHCP-клиент на eth0», или вы хотите рассматривать «DHCP-сервер на eth0» как переходное состояние, которое будет включено по запросу -и будет длиться только до следующей перезагрузки?

Вы также можете определить отдельный параметр udhcpd-eth0.service, который должен быть отключен (= никогда не запускаться автоматически ), если вы собираетесь использовать переходный режим. Если вам нужен постоянный режим, его следует включить и запустить при переключении в режим сервера, а также остановить и отключить при переходе в режим клиента.

Сценарий для постоянного переключения режимов должен будет выполнять следующее (в виде псевдокода):

  1. systemctl stop udhcpd-eth0; systemctl disable udhcpd-eth0. Не обращайте внимания на ошибки здесь.

  2. Запустить ifdown eth0.

  3. Замените текущий /etc/network/interfacesна /etc/network/interfaces.eth0clientили /etc/network/interfaces.eth0serverв зависимости от того, в какое состояние вы переходите.

  4. Выполнить ifup eth0.

  5. Если переключиться в режим DHCP-сервера на eth0, тоsystemctl enable udhcpd-eth0.service && systemctl start udhcpd-eth0.service

  6. Готово!

Если вы хотите, чтобы это было временное состояние, вам может вообще не понадобиться две копии файла /etc/network/interfaces. В этом случае ваш скрипт будет выглядеть так:

  1. systemctl stop udhcpd-eth0.service. Он может быть уже остановлен, а может и не остановлен; игнорировать ошибки здесь.

  2. Запустите ifdown eth0иip link set eth0 down(или ifconfig eth0 down, если используются старые инструменты ). Та или иная из этих команд сообщит об ошибке; это ожидается.

  3. Если вы переключаетесь в режим DHCP-клиента, запустите ifup eth0и все готово. В противном случае сначала используйте команды ipили ifconfig, чтобы настроить статический IP-адрес для режима DHCP-сервера -на eth0, затем запустите systemctl start udhcpd-eth0.

  4. Готово!

«Вызов сценария переключения из внешнего интерфейса оставлен читателю в качестве упражнения».

0
28.01.2020, 03:35

Теги

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