Innym typowym sposobem na uruchomienie czegoś podczas rozruchu na wielu platformach * nix jest (lub myślę, że może to zaczynać tracić przysługę - patrz alternatywy ), aby umieścić skrypty w katalogu, który w zależności od konkretnego systemu operacyjnego / dystrybucji może być coś /etc/rc2.d
, /etc/rc3.d
, /etc/rc/rc3.d
, lub podobnych (różne dystrybucje używają różnych poziomów „run”, czyli tam, gdzie liczba pochodzi - patrz link poniżej). Często są one również symbolizowane w plikach lub z plików /etc/init.d
, aby ułatwić ich ręczne wykonanie, i biorą argument „start” i / lub „stop” na większości platform * nix, a także „status”, „restart”, itp. na wielu platformach Linux. W takich systemach są one generalnie wykonywane przez init
,inittab
. W systemach * BSD istnieje inny styl podobnej koncepcji i, jak wspomniano powyżej, istnieje wiele odmian.
W powyższym stylu skrypty w np. /etc/rc2.d
(Dla systemu z domyślnym poziomem uruchamiania 2) zwykle zaczynają się od litery S
lub K
, a następnie od liczby dwucyfrowej. Skrypty rozpoczynające się na literę S są uruchamiane w kolejności leksykograficznej (co przekłada się ogólnie na kolejność numeryczną) podczas uruchamiania, na poziom 2, z argumentem „start”. Podczas zamykania skrypty z prefiksem K są podobnie uruchamiane z argumentem „stop”.
Pliki w /etc/init.d
(lub czasami /etc/rc/init.d
lub w innych odmianach) są nazywane bez prefiksów S i K lub liczb. Zazwyczaj pliki w różnych katalogach /etc/rc?.d symbolizują dowiązanie symboliczne do rzeczywistych plików, do których często odwołuje się względny prefiks ścieżki ../init.d/
.
W różnych systemach istnieją różne narzędzia do zarządzania nimi, a także włączania i wyłączania itd. W systemie IRIX (przynajmniej od IRIX 4, jeśli moja pamięć służy), było to narzędzie o nazwie chkconfig
, które nie manipulowało linki, ale które byłyby sprawdzane przez skrypty, aby sprawdzić, czy powinny zostać uruchomione, czy nie. Myślę, że IRIX był pierwszym systemem operacyjnym, który miał coś takiego. Później w niektórych wersjach RedHata, które kiedyś miałem, było narzędzie o tej samej nazwie, ale zachowywało się trochę inaczej, w rzeczywistości zarządzając dowiązaniami symbolicznymi - zobacz, chkconfig(8)
co moim zdaniem jest prawdopodobnie tą samą (lub bardzo podobną) wersją jak wtedy użyłem.
W systemie Ubuntu 9.04, do którego mam dostęp, wygląda na update-rc.d
to, że skrypt jest uruchamiany.
Jeśli korzystasz z systemu, który korzysta z inittab, możesz także dodawać tam rzeczy bezpośrednio - co może być szczególnie przydatne w przypadku rzeczy, które chcesz uruchomić nie tylko raz przy starcie systemu, ale także aktywnie monitorować (do init
), respawn
czy kiedykolwiek zawiesić się lub zakończyć. Zobacz dane wyjściowe man inittab
(jeśli masz) w systemie, aby uzyskać dodatkowe informacje. I / lub man init
itp. Istnieje wiele różnych smaków i nie jestem (obecnie) strasznie obeznany z Debianem lub Ubuntu, więc nie jestem pewien, na co mam cię wskazać, ale mam nadzieję, że daje to kilka punktów wyjścia .
sekcja @reboot w crontob jest dla mnie nowa, ale wydaje się również, że może być użyteczną opcją - choć sugerowałbym skrypty init jako preferowane z wielu powodów. Ale zobacz man 5 crontab
o wiele więcej informacji na temat tego, co możesz umieścić w konfiguracji crona oraz w jaki sposób można powiedzieć, aby uruchamiał różne rzeczy i kiedy (w tym zakładając, że wersja crona Vixie / ISC [zobacz historię cron ] z @reboot
).
Mam nadzieję, że to pomocne.