Как указать порядок запуска скриптов (CLI)?

Запуск действительно смущает меня. Кажется, что разные способы запуска вещей происходят в разных местах повсюду. Но есть ли способ определить порядок их загрузки?

В частности ... У меня есть проблема, из-за которой Plex Media Server (PMS) не может быть обнаружен клиентами, если VPN-соединение сервера установлено до PMS. начиная. Это сводило меня с ума, но я обнаружил, что могу решить эту проблему, выключив PMS, выключив VPN, включив PMS, а затем включив VPN.

Я не совсем уверен, как PMS автоматически загружается при запуске, но VPN-это то, что я определил, отредактировав: /etc/network/if-up.d/slickvpn со следующим:

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

Это сценарий, который я где-то нашел (думаю, на этом сайте), когда искал помощь в автоподключении VPN.

Так что я предполагаю, что /etc/network/if-up.d/ сценарии запускаются до службы PMS. Как я могу перевернуть это? Или другое решение?

2
задан 10 November 2013 в 00:10

1 ответ

Я думаю, что вы можете попробовать выскочить вместо этого. Вы можете остановить запуск VPN-сервера в сценариях ifupdown (переместить файл куда-нибудь еще), а затем выполнить несколько заданий upstart.

Создайте (или измените, если он уже существует, вам следует поискать в /etc/init) файл запуска PMS в /etc/init и заполнить его (**, если он уже присутствует, просто запомните имя .conf файл):

# 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

Это очень простой сценарий выскочки. Вы должны добавить / изменить вещи вокруг. Теперь другой сценарий:

Создайте файл /etc/init/vpn.conf и заполните его следующим содержанием

# 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

Готово.

0
ответ дан 10 November 2013 в 00:10

Другие вопросы по тегам:

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