Como ativar o perfil do NetworkManager através do systemd

1

Aqui está o problema que estou tentando resolver: Eu tenho um dispositivo sem fio, gostaria que ele agisse como um cliente em um determinado momento e como um ponto de acesso em outro momento.

Eu configurei o NetworkManager usando dois perfis, um para o cliente e outro para o Access Point. Tudo funciona desde que eu mude manualmente.

Os problemas começam quando tento amarrar esses dois perfis às unidades do systemd. Gostaria de poder associar um perfil do NetworkManager a uma unidade do systemd. Eu também escrevi a unidade usando comandos nmcli simples, mas sempre que eu inicio a unidade, a conexão sobe e desce.

Aqui está a unidade:

[Service]
type=oneshot
ExecStart=nmcli con up Connection2
ExecStop=nmcli con down Connection2

Veja o que o journalctl mostra a partir da unidade:

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Veja o que o journalctl mostra na unidade do NetworkManager (truncada):

<info> Activation (wlan0) successful, device activated.
<info> (wlan0): device state change: activated -> deactivating (reason 'user-requested') [100 11
<info> NetworkManager state is now DISCONNECTING
<info> (wlan0): device state change: deactivating -> disconnected (reason 'user-requested') [110
<info> (wlan0): deactivating device (reason 'user-requested') [39]
<info> Removing DNS information from /sbin/resolvconf
<info> NetworkManager state is now DISCONNECTED

Alguém pode me indicar o caminho certo para fazer isso? Também gostaria de evitar a abordagem "ifupdown" e usar o NetworkManager (ou systemd-networkd). Não tive sucesso usando o último, pois não consigo encontrar uma maneira fácil de definir o modo do dispositivo. Obrigado.

    
por Kei 05.11.2016 / 19:31

1 resposta

1

As unidades do Oneshot geralmente precisam de RemainAfterExit=yes , caso contrário, elas imediatamente "desativam" e executam o comando ExecStop.

    
por 05.11.2016 / 21:24