Oto fragment strony http://www.debian-administration.org/articles/28, który wydaje się odpowiadać na twoje pytanie.
Uwaga: w poniższym przykładowym skrypcie wystarczy dodać wywołanie do sekcji „ start)
”, aby faktycznie uruchomić program. Możesz przetestować funkcjonalność skryptu bez ponownego uruchamiania systemu: nazwij go pełną ścieżką i nadaj parametrowi „ start
” lub „ stop
”
Tutaj idzie:
Debian używa systemu inicjującego Sys-V do wykonywania poleceń, gdy zmienia się poziom uruchamiania systemu - na przykład podczas uruchamiania i zamykania systemu.
Jeśli chcesz dodać nową usługę, która ma się uruchamiać podczas uruchamiania komputera, dodaj odpowiedni katalog do katalogu /etc/init.d/
. Wiele skryptów już obecnych w tym katalogu daje przykład tego, co możesz zrobić.
Oto bardzo prosty skrypt, który jest podzielony na dwie części: kod, który zawsze działa, i kod, który działa, gdy jest wywoływany z „start” lub „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
Po zapisaniu pliku we właściwej lokalizacji upewnij się, że jest on wykonywalny, uruchamiając „ chmod 755 /etc/init.d/blah
”.
Następnie musisz dodać odpowiednie dowiązania symboliczne, aby skrypt był wykonywany, gdy system zawiedzie lub się uruchomi.
Najprostszym sposobem na to jest użycie polecenia specyficznego dla Debiana 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
radzi sobie z tym lepiej (chociaż lepiej, żeby sam program demonizował). Jakiej dystrybucji używasz? Poza typami MIME na pulpicie, rozszerzenia plików nie mają znaczenia w * nix i preferowane jest, aby pliki wykonywalne nie miały.