Como especificar a ordem dos scripts de inicialização (CLI)?

Como especificar a ordem dos scripts de inicialização (CLI)?

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/inite preenchê-lo (**se já estiver presente, basta anotar o nome do .confarquivo):

# 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.confarquivo 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.

informação relacionada