Как запустить демон во время загрузки после того, как все остальные службы готовы

Я разработал демон в Linux. Однако он работает правильно, когда я устанавливаю этот сценарий для запуска во время загрузки, он конфликтует с другой службой, поэтому мне нужно запустить его после запуска всех служб.

Как я могу добавить задержку в сценарий оболочки init.d или внутри самой службы, не влияя на загрузку системы?

Это Debian Linux.

С уважением Хайме

0
задан 4 December 2019 в 18:15
1 ответ

Один из возможных вариантов - включить такой фрагмент кода в ваш сценарий init.d.

конечно вам нужно изменить тестовую часть lsmod | grep -qw имя_модуля , чтобы убедиться, что аппаратный модуль полностью инициализирован.

также регулируют запуск вашего демона, в зависимости от того, демонизирует он себя или нет.

убедитесь, что первый сценарий инициализации /etc/rcX.d/S98first_daemon запускается до запуска вашего самодельного сценария запуска демона /etc/rcX.d/S99homemade_daemon

#!/bin/bash

wait_period=0
sleep_period=5
max_wait_period=30

function is_other_daemon_fully_initialized()
{
    lsmod | grep -qw module_name && return 0
    return 1
}

while true
do
    echo "Time Now: `date +%H:%M:%S`"
    echo "Sleeping for $sleep_period seconds"
    wait_period=$(($wait_period+$sleep_period))
    if [ $wait_period -gt $max_wait_period ];then
       echo "Max wait period exceeded, abort."
       exit 1
    else
       sleep $sleep_period
       is_other_daemon_fully_initialized && break
    fi
done

echo "Initialisation done in $wait_period seconds, launching second daemon."
/path/to/your/homemade/daemon
0
ответ дан 5 December 2019 в 01:48

Теги

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