mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 13:33:15 +00:00
watchfrr: build in defaults for -r/-s/-k
There's no good reason to not have these options default to the installation path of tools/watchfrr.sh. Doing so allows us to ditch watchfrr_options from daemons/daemons.conf completely. Fixes: #3652 Signed-off-by: David Lamparter <equinox@diac24.net>
This commit is contained in:
parent
ae132a9497
commit
3ec9556728
@ -2157,6 +2157,7 @@ AC_SUBST([CFG_LIBYANG_PLUGINS])
|
|||||||
AC_DEFINE_UNQUOTED([MODULE_PATH], ["$CFG_MODULE"], [path to modules])
|
AC_DEFINE_UNQUOTED([MODULE_PATH], ["$CFG_MODULE"], [path to modules])
|
||||||
AC_DEFINE_UNQUOTED([YANG_MODELS_PATH], ["$CFG_YANGMODELS"], [path to YANG data models])
|
AC_DEFINE_UNQUOTED([YANG_MODELS_PATH], ["$CFG_YANGMODELS"], [path to YANG data models])
|
||||||
AC_DEFINE_UNQUOTED([LIBYANG_PLUGINS_PATH], ["$CFG_LIBYANG_PLUGINS"], [path to libyang plugins])
|
AC_DEFINE_UNQUOTED([LIBYANG_PLUGINS_PATH], ["$CFG_LIBYANG_PLUGINS"], [path to libyang plugins])
|
||||||
|
AC_DEFINE_UNQUOTED([WATCHFRR_SH_PATH], ["${CFG_SBIN%/}/watchfrr.sh"], [path to watchfrr.sh])
|
||||||
|
|
||||||
dnl ------------------------------------
|
dnl ------------------------------------
|
||||||
dnl Enable RPKI and add librtr to libs
|
dnl Enable RPKI and add librtr to libs
|
||||||
|
@ -55,7 +55,7 @@ bfdd_options=" -A 127.0.0.1"
|
|||||||
fabricd_options="-A 127.0.0.1"
|
fabricd_options="-A 127.0.0.1"
|
||||||
|
|
||||||
# The list of daemons to watch is automatically generated by the init script.
|
# The list of daemons to watch is automatically generated by the init script.
|
||||||
watchfrr_options="-r '/usr/lib/frr/watchfrr.sh restart %s' -s '/usr/lib/frr/watchfrr.sh start %s' -k '/usr/lib/frr/watchfrr.sh stop %s'"
|
#watchfrr_options=""
|
||||||
|
|
||||||
# for debugging purposes, you can specify a "wrap" command to start instead
|
# for debugging purposes, you can specify a "wrap" command to start instead
|
||||||
# of starting the daemon directly, e.g. to use valgrind on ospfd:
|
# of starting the daemon directly, e.g. to use valgrind on ospfd:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# This is a "library" of sorts for use by the other FRR shell scripts. It
|
# This is a "library" of sorts for use by the other FRR shell scripts. It
|
||||||
# has most of the daemon start/stop logic, but expects the following shell
|
# has most of the daemon start/stop logic, but expects the following shell
|
||||||
@ -288,6 +288,13 @@ load_old_config "$C_PATH/daemons.conf"
|
|||||||
load_old_config "/etc/default/frr"
|
load_old_config "/etc/default/frr"
|
||||||
load_old_config "/etc/sysconfig/frr"
|
load_old_config "/etc/sysconfig/frr"
|
||||||
|
|
||||||
|
if declare -p watchfrr_options | grep -q '^declare \-a'; then
|
||||||
|
log_warning_msg "watchfrr_options contains a bash array value." \
|
||||||
|
"The configured value is intentionally ignored since it is likely wrong." \
|
||||||
|
"Please remove or fix the setting."
|
||||||
|
unset watchfrr_options
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# other defaults and dispatch
|
# other defaults and dispatch
|
||||||
#
|
#
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
### BEGIN INIT INFO
|
### BEGIN INIT INFO
|
||||||
# Provides: frr
|
# Provides: frr
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# This is NOT the init script! This is the watchfrr start/stop/restart
|
# This is NOT the init script! This is the watchfrr start/stop/restart
|
||||||
# command handler, passed to watchfrr with the -s/-r/-k commands. It is used
|
# command handler, passed to watchfrr with the -s/-r/-k commands. It is used
|
||||||
|
@ -53,6 +53,10 @@
|
|||||||
#define DEFAULT_MIN_RESTART 60
|
#define DEFAULT_MIN_RESTART 60
|
||||||
#define DEFAULT_MAX_RESTART 600
|
#define DEFAULT_MAX_RESTART 600
|
||||||
|
|
||||||
|
#define DEFAULT_RESTART_CMD WATCHFRR_SH_PATH " restart %s"
|
||||||
|
#define DEFAULT_START_CMD WATCHFRR_SH_PATH " start %s"
|
||||||
|
#define DEFAULT_STOP_CMD WATCHFRR_SH_PATH " stop %s"
|
||||||
|
|
||||||
#define PING_TOKEN "PING"
|
#define PING_TOKEN "PING"
|
||||||
|
|
||||||
DEFINE_MGROUP(WATCHFRR, "watchfrr")
|
DEFINE_MGROUP(WATCHFRR, "watchfrr")
|
||||||
@ -124,6 +128,9 @@ static struct global_state {
|
|||||||
.loglevel = DEFAULT_LOGLEVEL,
|
.loglevel = DEFAULT_LOGLEVEL,
|
||||||
.min_restart_interval = DEFAULT_MIN_RESTART,
|
.min_restart_interval = DEFAULT_MIN_RESTART,
|
||||||
.max_restart_interval = DEFAULT_MAX_RESTART,
|
.max_restart_interval = DEFAULT_MAX_RESTART,
|
||||||
|
.restart_command = DEFAULT_RESTART_CMD,
|
||||||
|
.start_command = DEFAULT_START_CMD,
|
||||||
|
.stop_command = DEFAULT_STOP_CMD,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -227,14 +234,17 @@ Otherwise, the interval is doubled (but capped at the -M value).\n\n",
|
|||||||
-r, --restart Supply a Bourne shell command to use to restart a single\n\
|
-r, --restart Supply a Bourne shell command to use to restart a single\n\
|
||||||
daemon. The command string should include '%%s' where the\n\
|
daemon. The command string should include '%%s' where the\n\
|
||||||
name of the daemon should be substituted.\n\
|
name of the daemon should be substituted.\n\
|
||||||
|
(default: '%s')\n\
|
||||||
-s, --start-command\n\
|
-s, --start-command\n\
|
||||||
Supply a Bourne shell to command to use to start a single\n\
|
Supply a Bourne shell to command to use to start a single\n\
|
||||||
daemon. The command string should include '%%s' where the\n\
|
daemon. The command string should include '%%s' where the\n\
|
||||||
name of the daemon should be substituted.\n\
|
name of the daemon should be substituted.\n\
|
||||||
|
(default: '%s')\n\
|
||||||
-k, --kill-command\n\
|
-k, --kill-command\n\
|
||||||
Supply a Bourne shell to command to use to stop a single\n\
|
Supply a Bourne shell to command to use to stop a single\n\
|
||||||
daemon. The command string should include '%%s' where the\n\
|
daemon. The command string should include '%%s' where the\n\
|
||||||
name of the daemon should be substituted.\n\
|
name of the daemon should be substituted.\n\
|
||||||
|
(default: '%s')\n\
|
||||||
--dry Do not start or restart anything, just log.\n\
|
--dry Do not start or restart anything, just log.\n\
|
||||||
-p, --pid-file Set process identifier file name\n\
|
-p, --pid-file Set process identifier file name\n\
|
||||||
(default is %s/watchfrr.pid).\n\
|
(default is %s/watchfrr.pid).\n\
|
||||||
@ -247,7 +257,9 @@ Otherwise, the interval is doubled (but capped at the -M value).\n\n",
|
|||||||
-h, --help Display this help and exit\n",
|
-h, --help Display this help and exit\n",
|
||||||
frr_vtydir, DEFAULT_LOGLEVEL, LOG_EMERG, LOG_DEBUG, LOG_DEBUG,
|
frr_vtydir, DEFAULT_LOGLEVEL, LOG_EMERG, LOG_DEBUG, LOG_DEBUG,
|
||||||
DEFAULT_MIN_RESTART, DEFAULT_MAX_RESTART, DEFAULT_PERIOD,
|
DEFAULT_MIN_RESTART, DEFAULT_MAX_RESTART, DEFAULT_PERIOD,
|
||||||
DEFAULT_TIMEOUT, DEFAULT_RESTART_TIMEOUT, frr_vtydir);
|
DEFAULT_TIMEOUT, DEFAULT_RESTART_TIMEOUT,
|
||||||
|
DEFAULT_RESTART_CMD, DEFAULT_START_CMD, DEFAULT_STOP_CMD,
|
||||||
|
frr_vtydir);
|
||||||
}
|
}
|
||||||
|
|
||||||
static pid_t run_background(char *shell_cmd)
|
static pid_t run_background(char *shell_cmd)
|
||||||
|
Loading…
Reference in New Issue
Block a user