¿Cómo especificar el orden de los scripts de inicio (CLI)?

¿Cómo especificar el orden de los scripts de inicio (CLI)?

El inicio realmente me confunde. Parece que ocurren varios métodos para iniciar las cosas en diferentes lugares por todas partes. ¿Pero hay alguna manera de definir el orden en que se cargan?

Específicamente... Tengo un problema por el cual los clientes no pueden descubrir Plex Media Server (PMS) si la conexión VPN del servidor se establece antes de que se inicie PMS. Me estaba volviendo loco, pero descubrí que podía resolver el problema apagando PMS, apagando la VPN, activando PMS y luego activando VPN.

No estoy exactamente seguro de cómo se carga automáticamente PMS al inicio, pero la VPN es algo que definí editando: /etc/network/if-up.d/slickvpn con lo siguiente:

#! /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

Es un script que encontré en alguna parte (creo que en este sitio) cuando buscaba ayuda para conectar automáticamente una VPN.

Entonces supongo que los scripts /etc/network/if-up.d/ se inician antes del servicio PMS. ¿Cómo puedo voltear eso? ¿U otra solución?

Respuesta1

Creo que quizás quieras darle una oportunidad al advenedizo. Puede evitar que el servidor VPN se inicie en los scripts ifupdown (moviendo el archivo a otro lugar) y luego realizar algunos trabajos iniciales.

Cree (o modifique si ya existe, debe buscar en /etc/init) el archivo de inicio de PMS /etc/inity complételo (**si ya está presente, solo tome nota del nombre del .confarchivo):

# 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 es un script advenedizo muy básico. Deberías agregar/modificar cosas. Ahora el otro guión:

Crea el /etc/init/vpn.confarchivo y rellénalo con el siguiente contenido.

# 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

Hecho.

información relacionada