RHEL6 Не удается запустить мой скрипт при завершении работы и перезагрузке

Я пытаюсь выполнить скрипт при каждом завершении работы и перезагрузке, но сценарий никогда не запускается.

  1. Я создал скрипт baseRhel64 и сохранил его в /etc/rc.d/init.d
  2. Я сделал chkconfig --add baseRhel64
  3. Я включил в скрипт

     #chkconfig --list # chkconfig: 06 10 10 
  4. Я проверил, что скрипт S10, созданный в /etc/rc0.d/S10baseRhel64 и /etc/rc6.d/S10baseRhel64

Ниже приведен мой сценарий:

 #!/bin/sh #chkconfig --list # chkconfig: 06 10 10 start(){ echo "`basename $0` start" touch /root/installscripts/test1 } stop(){ echo "`basename $0` stop" touch /root/installscripts/test2 touch /root/installscripts/"`basename $0`" } case "$1" in start) start;; stop) stop;; *) echo $"Usage: $0 {start|stop}" RETCAL=1 esac exit 0 

  • KDE: Оставить -> Выключить Компьютер не выключает систему
  • Как выключить или перезагрузить компьютер?
  • BunsenLabs (Deerrivative) не отключится (не удалось запустить poweroff.target: транзакция разрушительна)
  • Как запустить скрипт перед остановкой, используя заголовки LSB на Raspbian
  • Объяснение файла - org.freedesktop.login1.policy
  • Почему я могу войти в систему через SSH (PAM Auth), в то время как `shutdown -k` активен?
  • Shellscript! Синтаксическая ошибка, неожиданно "("
  • Почему мой скрипт не работает на уровне выполнения 0?
  • 3 Solutions collect form web for “RHEL6 Не удается запустить мой скрипт при завершении работы и перезагрузке”

    Если вы проверите то, что находится в /etc/rc0.d и /etc/rc6.d , вы увидите, что перед тем, как перейти к вашей службе, система сначала запустит killall (приоритет 00), а затем halt (приоритет 01).

    Хотя ваша служба была запланирована на следующий, компьютер уже остановился.

     lrwxrwxrwx 1 root root 17 Sep 28 2012 S00killall -> ../init.d/killall lrwxrwxrwx 1 root root 14 Sep 28 2012 S01halt -> ../init.d/halt lrwxrwxrwx 1 root root 14 Jul 8 21:16 S10test -> ../init.d/test 

    Что бы я сделал, если бы я был вами, это включить скрипт на уровне запуска, который вы обычно используете, скажем, 345 а затем поменять начало с остановкой, поскольку все демоны chkconfig: ed, которые будут запущены в вашем текущем уровне выполнения, будут вызываться при остановке и перезагрузка с помощью stop arg, прежде чем она доберется до сервисов, которые она должна начать .

    Если вы хотите, чтобы ваш скрипт был запущен в последний раз, прежде чем убить все, а затем остановите свой компьютер, проверьте, что является самым высоким (мои K92iptables , поэтому для меня это будет> 92 для остановки приоритета).

    Итак, chkconfig --del baseRhel64 , затем chkconfig --del baseRhel64 скрипт так, чтобы строка chkconfig --del baseRhel64 # chkconfig: 345 10 93

    Тогда ваш скрипт будет выглядеть примерно так: имена функций запуска и остановки заменены:

     #!/bin/sh #chkconfig --list # chkconfig: 345 10 93 stop(){ echo "`basename $0` stop" touch /root/installscripts/test1 } start(){ echo "`basename $0` start" touch /root/installscripts/test2 touch /root/installscripts/"`basename $0`" } case "$1" in start) start;; stop) stop;; *);; echo $"Usage: $0 {start|stop}" RETCAL=1 esac exit 0 

    Когда вы настраиваете собственный сценарий инициализации в RH EL 6, названный, например, «имя_сервера», вам необходимо создать на этапе запуска файл блокировки / var / lock / subsys / service_name, иначе сценарий не будет выполнен во время выключение системы (init 0 или init 6). В то же время вы должны установить «rm -f» файла блокировки во время фазы останова.

    У меня есть прекрасное решение для вас a) Сценарий, подобный этому

     #!/bin/sh # # localshutdown # # chkconfig: 06 01 25 # description: localshutdown script # ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: 0 6 # Default-Stop: # Short-Description: # Description: ### END INIT INFO # Source function library. start() { echo "Your commands here" touch /root/funziona #use it for a test } stop() { echo "nothing" >/dev/null 2>&1 } restart() { stop start } case "$1" in start) start $1 ;; stop) stop $1 ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" exit 2 esac exit $? 

    затем

     chkconfig --add /etc/init.d/yourscript.sh 

    тогда

     chkconfig --level 06 yourscript.sh on chkconfig --level 12345 yourscript.sh off 

    Протестировано и работает

    Interesting Posts

    Как SANE обнаруживает сканер, который был отключен?

    Определить сеанс tmux, к которому относится сеанс оболочки?

    Как управлять потерянными процессами пользователей?

    Как я могу закончить здесь-документ, начинающийся с << \\ $ fff?

    Текущая рабочая группа

    Команда Grep, которая находит / исключает всю строку, где символ разделителя появляется определенное количество раз?

    Samba не показывает символические ссылки

    Как труба участвует в ssh?

    SystemD: сконфигурировать файл блока, чтобы экран входа в систему не показывался до тех пор, пока служба не выйдет и не перезагрузится

    Как установить Apricity на логический том с помощью Calamares?

    Как я могу захватить статус возврата и использовать тройник одновременно в оболочке korn?

    Удаление неиспользуемых приложений / программ

    Интерактивный режим Bash при перенаправлении

    Копировать поверх ssh и выполнять команды за один сеанс

    Команда поиска возвращает неверные файлы

    Linux и Unix - лучшая ОС в мире.