mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-02 19:29:27 +00:00
Merge remote-tracking branch 'origin/cmaster' into cmaster-next
This commit is contained in:
commit
82b4d5da4b
14
tools/quagga
14
tools/quagga
@ -33,7 +33,6 @@ else
|
||||
SSD=`which start-stop-daemon`
|
||||
fi
|
||||
|
||||
echo ${SSD}
|
||||
# Print the name of the pidfile.
|
||||
pidfile()
|
||||
{
|
||||
@ -114,12 +113,23 @@ start()
|
||||
echo -n " $1"
|
||||
fi
|
||||
|
||||
if [ -e /var/run/quagga/watchquagga.started ] ; then
|
||||
rm /var/run/quagga/watchquagga.started
|
||||
fi
|
||||
${SSD} \
|
||||
--start \
|
||||
--pidfile=`pidfile $1` \
|
||||
--exec "$D_PATH/$1" \
|
||||
-- \
|
||||
"${watchquagga_options[@]}"
|
||||
for i in `seq 1 10`;
|
||||
do
|
||||
if [ -e /var/run/quagga/watchquagga.started ] ; then
|
||||
break
|
||||
else
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
elif [ -n "$2" ]; then
|
||||
echo -n " $1-$2"
|
||||
if ! check_daemon $1 $2 ; then
|
||||
@ -502,8 +512,8 @@ case "$1" in
|
||||
if [ "$2" != "watchquagga" ]; then
|
||||
start_prio 10 $dmn
|
||||
fi
|
||||
vtysh_b
|
||||
start_watchquagga
|
||||
vtysh_b
|
||||
;;
|
||||
|
||||
1|2|3|4|5|6|7|8|9|10)
|
||||
|
||||
@ -682,6 +682,28 @@ handle_read(struct thread *t_read)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Wait till we notice that all daemons are ready before
|
||||
* we send we are ready to systemd
|
||||
*/
|
||||
static void
|
||||
daemon_send_ready (void)
|
||||
{
|
||||
static int sent = 0;
|
||||
if (!sent && gs.numdown == 0)
|
||||
{
|
||||
#if defined (HAVE_CUMULUS)
|
||||
FILE *fp;
|
||||
|
||||
fp = fopen("/var/run/quagga/watchquagga.started", "w");
|
||||
fclose(fp);
|
||||
#endif
|
||||
zlog_notice ("Watchquagga: Notifying Systemd we are up and running");
|
||||
systemd_send_started(master, 0);
|
||||
sent = 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
daemon_up(struct daemon *dmn, const char *why)
|
||||
{
|
||||
@ -689,6 +711,7 @@ daemon_up(struct daemon *dmn, const char *why)
|
||||
gs.numdown--;
|
||||
dmn->connect_tries = 0;
|
||||
zlog_notice("%s state -> up : %s",dmn->name,why);
|
||||
daemon_send_ready();
|
||||
if (gs.do_ping)
|
||||
SET_WAKEUP_ECHO(dmn);
|
||||
phase_check();
|
||||
@ -1284,7 +1307,6 @@ main(int argc, char **argv)
|
||||
|
||||
gs.restart.interval = gs.min_restart_interval;
|
||||
master = thread_master_create();
|
||||
systemd_send_started (master, 0);
|
||||
signal_init (master, array_size(my_signals), my_signals);
|
||||
srandom(time(NULL));
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user