A inicialização realmente me confunde. Parece que vários métodos para iniciar as coisas acontecem em locais diferentes em todos os lugares. Mas existe uma maneira de definir a ordem em que são carregados?
Especificamente... Tenho um problema em que o Plex Media Server (PMS) não pode ser descoberto pelos clientes se a conexão VPN do servidor for estabelecida antes do início do PMS. Isso estava me deixando maluco, mas descobri que poderia resolver o problema desligando o PMS, desligando a VPN, ligando o PMS e depois ligando a VPN.
Não sei exatamente como o PMS se carrega automaticamente na inicialização, mas a VPN é algo que defini editando: /etc/network/if-up.d/slickvpn com o seguinte:
#! /bin/bash
REQUIRED_CONNECTION_NAME="Wired connection 1"
VPN_CONNECTION_NAME="myvpn"
activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
nmcli con up id "${VPN_CONNECTION_NAME}"
fi
Esse é um script que encontrei em algum lugar (acho que neste site) ao procurar ajuda para conectar automaticamente uma VPN.
Então, acho que os scripts /etc/network/if-up.d/ são iniciados antes do serviço PMS. Como posso inverter isso? Ou outra solução?
Responder1
Acho que você pode querer dar uma chance ao iniciante. Você pode impedir que o servidor VPN seja iniciado nos scripts ifupdown (movendo o arquivo para outro lugar) e, em seguida, faça alguns trabalhos iniciais.
Crie (ou modifique se já existir, você deve pesquisar em /etc/init
) o arquivo de inicialização do PMS /etc/init
e preenchê-lo (**se já estiver presente, basta anotar o nome do .conf
arquivo):
# pms - Plex Media Server
description "Plex Media Server"
start on (local-filesystems and net-device-up IFACE!=lo)
## here you can define what interface you can wait, just change IFACE!=lo for IFACE=eth0, etc.
## This stops the job at shutdown
stop on runlevel [!2345]
script
exec /path/to/pms/server/binar
end script
Este é um script inicial muito básico. Você deve adicionar/modificar coisas. Agora o outro script:
Crie o /etc/init/vpn.conf
arquivo e preencha-o com o seguinte conteúdo
# vpn - Virtual Private Network server
description "Virtual Private Network server"
start on started plexmediaserver
## now, the VPN server will only start if PMS starts :D
## This stops the job at shutdown you can modify it and make it to stop before stoping PMS
stop on runlevel [!2345]
env REQUIRED_CONNECTION_NAME="Wired connection 1"
env VPN_CONNECTION_NAME="myvpn"
export REQUIRED_CONNECTION_NAME
export VPN_CONNECTION_NAME
script
exec /usr/bin/nmcli con up id "${VPN_CONNECTION_NAME}"
end script
Feito.