Бывают ситуации, когда требуется запуск сервиса с задержкой. Например, какая-нибудь сетевая служба запускается, а ng-интерфейса еще не нет. Такую задачу можно решить с помощью rc.d скриптов.
Создаете в /etc/rc.d скрипт
# touch /etc/rc.d/program_name
Открываете для редактирования
# vi /etc/rc.d/program_name
Пишете минимальный набор функций. Для выполнения задержки перед запуском используем функцию
start_precmd
. Замените в скрипте program_name на ваш исполняемый файл. #!/bin/sh
# REQUIRE: NETWORKING SERVERS
. /etc/rc.subr
name="program_name"
rcvar=program_name_enable
command="/usr/local/sbin/program_name"
start_precmd="${name}_prestart"
load_rc_config $name
: ${program_name_enable="NO"}
name_prestart()
{
echo "Waiting 60 sec."
sleep 60
}
run_rc_command "$1"
Служба будет запускаться, останавливаться и перезапускаться, как обычно, по start, stop, restart.
# service program_name startЧто бы сервис стартовал автоматически в
/etc/rc.conf
пишем program_name_enable="YES"
и не забудьте назначить исполняемый биты.# chmod +x /etc/rc.d/program_name
это не правильный метод, если вы хотите запуск после какой то службы, то это возможно сделать средствами rc.d
ОтветитьУдалитьБудьте добры поподробней? Что именно не правильно? У меня и так делается через rc.d скрипт! Какой способ вы можете предложить?
Удалить