systemd искажает $0, добавляя 0000:00:14.0 к имени скрипта

Имя карты не обязательно должно отображаться в /etc/network/interfaces, вы можете просто ввести его вручную. Как только процесс загрузки обнаружит совпадение 1 :1 между именем в файле интерфейсов и фактическим интерфейсом, он применит конфигурацию. Вот очень простая строфа, очевидно, замените имена интерфейсов своими собственными. Либо вниз/вверх, либо перезагрузка.

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254

Вы также можете установить статический IP-адрес «на лету» из bash, используя эту команду, однако он не сохранится после перезагрузки.

sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 

, а затем добавить маршрут по умолчанию

sudo route add default gw eth0

еще раз, не забудьте поменять местами "eth0" на фактическое имя вашего интерфейса.

1
11.06.2020, 17:16
1 ответ

Systemd сначала отключает Network Manager

Даже после исправления сообщения об ошибке, когда шина USB не была отключена во время приостановки, проблемы остаются: вы не можете отправить команду WiFi во время приостановки.

Диспетчер сети — это первая служба, которая отключается во время приостановки/гибернации и выключения. Если вы хотите отправить радиосигнал WiFi на устройство в это время, вам нужно прочитать это .

Переместите свой скрипт из «хаков» Systemd

Чтобы решить мою проблему, я создал скрипт:

/etc/NetworkManager/dispatcher.d/pre-down.d/smartplug_off

Скрипт должен быть помечен как исполняемый(chmod a+x scriptname)и у меня он содержит:

#!/bin/bash

# NAME: smartplug_off
# PATH: /etc/NetworkManager/dispatcher.d/pre-down.d
# DESC: Turn off smartplug light power for TV light
# DATE: March 7, 2020.

# CALL: Called by Network Manager before going down. Network manager in turn
#       is called by systemd during suspend/hibernate/shutdown

# NOTE: myisp.sh and hs100.sh must be installed for hs100 tp-link power plug.
#       https://developer.gnome.org/NetworkManager/stable/NetworkManager.html

PlugName="192.168.0.15"

status=$(hs100.sh -i "$PlugName" check | cut -f2)
if [ $status == "OFF" ] ; then
    : # Nothing to do already off
elif [ $status == "ON" ] ; then
    hs100.sh -i "$PlugName" off
else
    echo Error hs100.sh not responding check connection and IP "$PlugName".
fi
1
28.04.2021, 23:24

Теги

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