Вот выдержка из http://www.debian-administration.org/articles/28, которая, кажется, отвечает на ваш вопрос.
Примечание. В приведенном ниже примере сценария просто добавьте вызов в start)
раздел « », чтобы фактически запустить вашу программу. Вы можете проверить работоспособность скрипта, не перезагружая систему: вызвать его с полным путем и присвоить ему параметр " start
" или " stop
"
Вот оно:
Debian использует систему инициализации, подобную Sys-V, для выполнения команд при изменении уровня выполнения системы - например, во время загрузки и завершения работы.
Если вы хотите добавить новый сервис для запуска при загрузке машины, вы должны добавить в каталог необходимый скрипт /etc/init.d/
. Многие из сценариев, уже присутствующих в этом каталоге, дадут вам пример того, что вы можете сделать.
Вот очень простой скрипт, который разделен на две части: код, который всегда выполняется, и код, который запускается при вызове с помощью «start» или «stop».
#! /bin/sh
# /etc/init.d/blah
#
# Some things that run always
touch /var/lock/blah
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting script blah "
echo "Could do more here"
;;
stop)
echo "Stopping script blah"
echo "Could do more here"
;;
*)
echo "Usage: /etc/init.d/blah {start|stop}"
exit 1
;;
esac
exit 0
После того, как вы сохранили файл в правильном месте, убедитесь, что он исполняется, запустив "chmod 755 /etc/init.d/blah
".
Затем вам нужно добавить соответствующие символические ссылки, чтобы скрипт выполнялся, когда система выключается или запускается.
Самый простой способ сделать это - использовать команду, специфичную для Debian update-rc.d
:
root@skx:~# update-rc.d blah defaults
Adding system startup for /etc/init.d/blah ...
/etc/rc0.d/K20blah -> ../init.d/blah
/etc/rc1.d/K20blah -> ../init.d/blah
/etc/rc6.d/K20blah -> ../init.d/blah
/etc/rc2.d/S20blah -> ../init.d/blah
/etc/rc3.d/S20blah -> ../init.d/blah
/etc/rc4.d/S20blah -> ../init.d/blah
/etc/rc5.d/S20blah -> ../init.d/blah
start-stop-daemon
справляется с этим лучше (хотя это предпочтительнее, программа сама демонизирует). Какой дистрибутив вы используете? Вне настольных MIME-типов расширения файлов не имеют смысла в * nix, и предпочтительно, чтобы в исполняемых файлах их не было.