5W site logo 5W - мой домашний сайт-блог с картинками, кино и плюшками.

autostart-sysv-init-debian.txt


Автозапуск вашего скрипта - Debian
Система Unix, Linux, Debian

Давайте рассмотрим еще один способ автозапуска скрипта при старте ОС Debian.

Debian использует Sys-V, при инициализации системы для выполнения команд, или когда уровень системы при запуске изменяеться - например при загрузке и завершении системы.

Если вы хотите добавить новую службу, при старте загрузки компьютера вы должны добавить необходимый сценарий в каталог /etc/init.d/. Многие из сценариев, уже присутствуют в этом каталоге могут помочь вам для понимания некоторых вещей, которые вы можете сделать.

Вот очень простой скрипт, который разделен на две части, код который постоянно работает, и код, который работает при вызове с «старт» или «стоп».




#! /bin/sh
# /etc/init.d/script.sh
#

# Some things that run always
touch /var/lock/script.sh

# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script script.sh "
echo "Could do more here"
;;
stop)
echo "Stopping script script.sh"
echo "Could do more here"
;;
*)
echo "Usage: /etc/init.d/script.sh {start|stop}"
exit 1
;;
esac

exit 0

После того как вы сохранили файл в нужное место убедиться, что это исполняемый файл, это можно сделать запустив "CHMOD 755 /etc/init.d/script.sh".

Далее вам необходимо добавить соответствующие символические ссылки, для того чтобы достичь выполнения сценария, когда система тушиться, или запускается.

Самый простой способ сделать это состоит в использовании для Debian конкретную команду Update-rc.d:

root@skx:~# update-rc.d script.sh defaults
Adding system startup for /etc/init.d/script.sh ...
/etc/rc0.d/K20script.sh -> ../init.d/script.sh
/etc/rc1.d/K20script.sh -> ../init.d/script.sh
/etc/rc6.d/K20script.sh -> ../init.d/script.sh
/etc/rc2.d/S20script.sh -> ../init.d/script.sh
/etc/rc3.d/S20script.sh -> ../init.d/script.sh
/etc/rc4.d/S20script.sh -> ../init.d/script.sh
/etc/rc5.d/S20script.sh -> ../init.d/script.sh


Если у вас появиться необходимость удалить этот скрипт, то сделайте следующее:

root@skx:/etc/rc2.d# update-rc.d -f script.sh remove
update-rc.d: /etc/init.d/script.sh exists during rc.d purge (continuing)
Removing any system startup links for /etc/init.d/script.sh ...
/etc/rc0.d/K20script.sh
/etc/rc1.d/K20script.sh
/etc/rc2.d/S20script.sh
/etc/rc3.d/S20script.sh
/etc/rc4.d/S20script.sh
/etc/rc5.d/S20script.sh
/etc/rc6.d/K20script.sh


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