diff options
Diffstat (limited to 'etc/init.d/vyatta-router')
-rwxr-xr-x | etc/init.d/vyatta-router | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/etc/init.d/vyatta-router b/etc/init.d/vyatta-router deleted file mode 100755 index c57387c..0000000 --- a/etc/init.d/vyatta-router +++ /dev/null @@ -1,250 +0,0 @@ -#!/bin/bash -### BEGIN INIT INFO -# Provides: vyatta-router -# Required-Start: $syslog $time $local_fs -# Required-Stop: $syslog $time $local_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: VyOS Router -# Description: Debian init script for the VyOS Router -### END INIT INFO -# **** License **** -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# A copy of the GNU General Public License is available as -# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution -# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'. -# You can also obtain it by writing to the Free Software Foundation, -# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -# MA 02110-1301, USA. -# -# Author: Tom Grennan <tgrennan@vyatta.com> -# **** End License **** - -. /lib/lsb/init-functions - -: ${vyatta_env:=/etc/default/vyatta} -source $vyatta_env - -declare progname=${0##*/} -declare action=$1; shift - -declare -x BOOTFILE=$vyatta_sysconfdir/config/config.boot - -# If vyos-config= boot option is present, use that file instead -VYOS_CONFIG=$(cat /proc/cmdline | grep -Eo '\bvyos-config=(\S+)\b' /proc/cmdline | awk -F'=' '{print $2}') - -if [ ! -z "$VYOS_CONFIG" ]; then - if [ -r "$VYOS_CONFIG" ]; then - echo "Config selected manually: $VYOS_CONFIG" - declare -x BOOTFILE="$VYOS_CONFIG" - else - echo "WARNING: Could not read selected config file, using default!" - fi -fi - -declare -a subinit -declare -a all_subinits=( - rl-system - firewall ) - -if [ $# -gt 0 ] ; then - for s in $@ ; do - [ -x ${vyatta_sbindir}/${s}.init ] && subinit[${#subinit}]=$s - done -else - for s in ${all_subinits[@]} ; do - [ -x ${vyatta_sbindir}/${s}.init ] && subinit[${#subinit}]=$s - done -fi - -GROUP=vyattacfg - -# check if bootup of this portion is disabled -disabled () { - grep -q -w no-vyos-$1 /proc/cmdline -} - -# if necessary, provide initial config -init_bootfile () { - if [ ! -r $BOOTFILE ] ; then - if [ -f $vyatta_sysconfdir/config.boot.default ]; then - cp $vyatta_sysconfdir/config.boot.default $BOOTFILE - else - $vyatta_sbindir/vyatta_current_conf_ver.pl > $BOOTFILE - fi - - chgrp ${GROUP} $BOOTFILE - chmod 660 $BOOTFILE - fi -} - -# if necessary, migrate initial config -migrate_bootfile () -{ - if [ -x $vyatta_sbindir/vyatta_config_migrate.pl ]; then - log_progress_msg migrate - sg ${GROUP} -c "$vyatta_sbindir/vyatta_config_migrate.pl $BOOTFILE" - fi -} - -# load the initial config -load_bootfile () -{ - log_progress_msg configure - ( - if [ -f /etc/default/vyatta-load-boot ]; then - # build-specific environment for boot-time config loading - source /etc/default/vyatta-load-boot - fi - sg ${GROUP} -c "$vyatta_sbindir/vyatta-boot-config-loader $BOOTFILE" - ) -} - -# execute the pre-config script -run_preconfig_script () -{ - if [ -x /config/scripts/vyos-preconfig-bootup.script ]; then - /config/scripts/vyos-preconfig-bootup.script - fi -} - -run_postupgrade_script () -{ - if [ -f /config/.upgraded ]; then - # Run the system script - /usr/libexec/vyos/system/post-upgrade - - # Run user scripts - if [ -d /config/scripts/post-upgrade.d ]; then - run-parts /config/scripts/post-upgrade.d - fi - - rm -f /config/.upgraded - fi -} - -# -# On image booted machines, we need to mount /boot from the image-specific -# boot directory so that kernel package installation will put the -# files in the right place. We also have to mount /boot/grub from the -# system-wide grub directory so that tools that edit the grub.cfg -# file will find it in the expected location. -# -bind_mount_boot () -{ - persist_path=$(/opt/vyatta/sbin/vyos-persistpath) - if [ $? == 0 ]; then - if [ -e $persist_path/boot ]; then - image_name=$(cat /proc/cmdline | sed -e s+^.*vyos-union=/boot/++ | sed -e 's/ .*$//') - - if [ -n "$image_name" ]; then - mount --bind $persist_path/boot/$image_name /boot - - if [ $? -ne 0 ]; then - echo "Couldn't bind mount /boot" - fi - - if [ ! -d /boot/grub ]; then - mkdir /boot/grub - fi - - mount --bind $persist_path/boot/grub /boot/grub - if [ $? -ne 0 ]; then - echo "Couldn't bind mount /boot/grub" - fi - fi - fi - fi -} - -start () -{ - # Fixup for FRR - - # In 5.1 master, zebra thinks existence of /var/run/netns is - # a requirement for netns support - mkdir /var/run/netns - - # Since systemd doesn't work without watchfrr and watchfrr restarts - # all daemons if just one failed, do the start manually - /usr/lib/frr/frr start - - log_action_begin_msg "Mounting VyOS Config" - # ensure the vyatta_configdir supports a large number of inodes since - # the config hierarchy is often inode-bound (instead of size). - # impose a minimum and then scale up dynamically with the actual size - # of the system memory. - local tmem=$(sed -n 's/^MemTotal: \+\([0-9]\+\) kB$/\1/p' /proc/meminfo) - local tpages - local tmpfs_opts="nosuid,nodev,mode=775,nr_inodes=0" #automatically allocate inodes - mount -o $tmpfs_opts -t tmpfs none ${vyatta_configdir} \ - && chgrp ${GROUP} ${vyatta_configdir} - log_action_end_msg $? - - disabled bootfile || init_bootfile - - log_daemon_msg "Starting VyOS router" - disabled migrate || migrate_bootfile - - run_preconfig_script - - run_postupgrade_script - - for s in ${subinit[@]} ; do - if ! disabled $s; then - log_progress_msg $s - if ! ${vyatta_sbindir}/${s}.init start - then log_failure_msg - exit 1 - fi - fi - done - - disabled configure || load_bootfile - log_end_msg $? - - telinit q - bind_mount_boot - chmod g-w,o-w / -} - -stop() -{ - local -i status=0 - log_daemon_msg "Stopping VyOS router" - for ((i=${#sub_inits[@]} - 1; i >= 0; i--)) ; do - s=${subinit[$i]} - log_progress_msg $s - ${vyatta_sbindir}/${s}.init stop - let status\|=$? - done - log_end_msg $status - log_action_begin_msg "Un-mounting VyOS Config" - umount ${vyatta_configdir} - log_action_end_msg $? - - /usr/lib/frr/frr stop -} - -case "$action" in - start) start ;; - stop) stop ;; - restart|force-reload) stop && start ;; - *) log_failure_msg "usage: $progname [ start|stop|restart ] [ subinit ... ]" ; - false ;; -esac - -exit $? - -# Local Variables: -# mode: shell-script -# sh-indentation: 4 -# End: |