обновление-rc.d не принимает заголовок файла сценария

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

если! ping -q -w 1 -c 1 $ (ip r | grep default | cut -d '' -f 3)

Более конкретно:

ping -q -w 1 -c 1 $ (ip r | grep default | cut -d '' -f 3)

Хост ip передан неправильно.

Обратите внимание, что каждая часть работает сама по себе (т.е. ping host и ip r .... ).

Это сработало для меня:

$ ip r | grep "default" | cut -d ' ' -3 | xargs ping -q -w 1 -c 1

Попытайтесь включить это в свои if операторы. xargs берет выходные данные из предыдущих каналов и использует их для ping , тогда как ранее ip не передавался половине кода ping . Попробуйте это в командной строке :-)

Изменено на netstat , а не на ip r , который также работает с Pi, но является достаточно общим для использования на других дисках Linux.

Сценарий ниже:

Он правильно получает имя хоста для проверки связи и вводит оператор (ы) в случае 0 (ввод, т.е. когда устройство отключено).

Также реструктурирован оператор if с помощью скобок [] и назначена переменная для оператора очистки.

#!/bin/bash

test_host=`netstat -nr | grep "UG" | awk '{ print $2}' | xargs ping -q -w 1 -c 1 | grep "received" | awk '{ print $4 }'`
if [ "$test_host" == "0" ] || [ -z "$test_host" ] ;
then
    echo "service networking restart"

    sleep 60
    test_host=`netstat -nr | grep "UG" | awk '{ print $2}' | xargs ping -q -w 1 -c 1 | grep "received" | awk '{ print $4 }'`
    if [ "$test_host" == "0" ] || [ -z "$test_host" ] ;
    then
            echo "reboot"
    fi
fi
1
27.04.2015, 10:39
3 ответа

Когда я искал эту ошибку в Google. Это дало мне два варианта:

а) вспышка с последним изображением b) Замените скрипт LED_IGNAING.SH со скриптом, приведенным в GoogleGroups и блогах.

Итак, я попробовал 2-й вариант сначала и сработал. Я понятия не имею, какова цель LED_IGNING.SH

Актуальный LED_IGN.SH IS:

> #!/bin/sh
> # tary, 16:46 2013-4-22
> 
> x=$(/bin/ps -ef | /bin/grep "[l]ed_acc") if [ ! -n "$x" -a -x
> /usr/bin/led_acc ]; then  /usr/bin/led_acc & fi

Новый LED_IGN.SH:

> #!/bin/sh -e  
> ### BEGIN INIT INFO  
> # Provides: led_aging.sh  
> # Required-Start: $local_fs  
> # Required-Stop: $local_fs  
> # Default-Start: 2 3 4 5  
> # Default-Stop: 0 1 6  
> # Short-Description: Start LED aging  
> # Description: Starts LED aging (whatever that is)  
> ### END INIT INFO

> x=$(/bin/ps -ef | /bin/grep "[l]ed_acc")   if [ ! -n "$x" -a -x
> /usr/bin/led_acc ]; then     /usr/bin/led_acc &   fi
1
27.01.2020, 23:50

Ваша проблема с совершенно другим файлом. Он назван во многих сообщениях ошибок, которые прямо перед вами: LED_IGN.SH .

У него нет правильных заголовков LSB. Несколько человек на www предоставили версии, которые имеют:

0
27.01.2020, 23:50

попробуйте это

До :::::::::::::::::::

#!/bin/bash
### BEGIN INIT INFO
# Provides:          GatewayStart.sh
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

:::::::::::::::::::::::::

After########################

#!/bin/bash
#
 GatewayStart init script

### BEGIN INIT INFO
# Provides:          GatewayStart.sh
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

все строки здесь прокомментированы #

Я не знаю, почему это удаляет это # с начала из некоторых строк.

#
0
27.01.2020, 23:50

Теги

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