Запустите init сценарий только, после того как сетевой интерфейс возрос

У меня есть бездисплейный медиасервер с помощью mpd работающий на хинду. Mpd настроен для запуска при начальной загрузке (и у меня нет емкостно-резистивных сценариев, выполняющих параллельно ни одного), но к сожалению mpd не запустится, если он не может связать с интерфейсом. Я попытался дать свою беспроводную LAN, которую не будет запускать статический IP-адрес, но иногда mpd, потому что плата беспроводной локальной сети не связалась с точкой доступа (я использую wpa_supplicant).

Теперь, когда ssh запускается, довольно радо ожидать интерфейса для подъема. Но даже с небольшим рытьем я не могу узнать вполне, как оно делает это.

Мой ужасный взлом был бы для mpd сценария только для ожидания в течение "достаточного" времени платы беспроводной локальной сети для соединения, но это не будет работать при всех обстоятельствах.

Кто-либо получил какие-либо указатели?

Связанные с NB: вопросы, которые не отвечают на мой вопрос (но могло бы быть полезно для других, здесь):

run-a-script-when-connected-to-a-wireless-network-in-linux и linux-how-to-start-skype-or-other-program-only-when-im-online

1
задан 20.03.2017, 12:16

4 ответа

В хинду сценариях запуска (/etc/init.d/mpd в Вашем примере) должен быть a

 depend() { ... }

разделите около вершины. Это - то, как init заканчивает тем, что определил порядок на запуск. Необходимо поместить требование для сети для окончания прежде, чем запустить mpd там. Я думаю, что строка

 need net

Проверьте для наблюдения то, что находится в зависеть разделе в/etc/init.d/sshd. Та же строка от этого должна, вероятно, работать, если Вы добавляете, что она к mpd запускает сценарий.

2
ответ дан 12.12.2019, 10:48

Общий подход должен был бы попытаться запустить mpd в цикле, пока он не запускается успешно. Я полагаю, что mpd обычно бросал бы определенный код выхода (который можно поймать в сценарии запуска), когда это не могло запуститься по определенным причинам.

1
ответ дан 12.12.2019, 10:48

От /etc/wpa_supplicant/ifupdown.sh:

# This file is executed by ifupdown in pre-up, post-up, pre-down and
# post-down phases of network interface configuration. It allows
# ifup(8), and ifdown(8) to manage wpa_supplicant(8) and wpa_cli(8)
# processes running in daemon mode.

Вокруг о строке 144 (на моей копии) сценария, который это, кажется, делает, это - пост операции - необходимо смочь поместить запуск mpd сюда, если кто-то не может думать о лучшем месте.

0
ответ дан 12.12.2019, 10:48

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

0
ответ дан 12.12.2019, 10:48

Теги

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