Jak utworzyć skrypt startowy init.d

8

Chcę tylko uruchomić bardzo proste polecenie podczas uruchamiania. Jak mogę to zrobić? Przeszukałem google i ma bardzo skomplikowane przykłady, ale potrzebuję tylko uruchomić ten skrypt podczas uruchamiania. Jak mogę to zrobić?

Scenariusz

./init.d/opscenter-agent start

sed
źródło

Odpowiedzi:

8

Jeśli chcesz to zrobić podczas uruchamiania systemu (w przeciwieństwie do logowania do komputera), wprowadź polecenia, które chcesz uruchomić /etc/rc.local.

Zobacz [Ubuntu] Wykonywanie skryptu podczas uruchamiania i zamykania systemu .

Li-aung Yip
źródło
OP specjalnie poprosił o skrypt init.d, który tak naprawdę nie jest. Jest to podejście powiązane, głównie dlatego, że robiliśmy to 30 lat temu, a mniej więcej nigdy tego nie robimy dzięki nowszym podejściom, takim jak init.d. (co z kolei jest przestarzałe na rzecz systemd's / etc / init).
mc0e
3

Jeśli skrypt nie musi być uruchamiany przez root, możesz to zrobić:

1) Otwórz „Preferencje aplikacji startowych” ( Alt+ F2i wklej gnome-session-propertiesi naciśnij Enter),

2) Naciśnij „Dodaj” i wybierz skrypt:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


Jeśli nie używasz środowiska graficznego, które można umieścić polecenia tuż przed linią exit 0w tym pliku: /etc/rc.local. (Aby edytować, wystarczy wkleić na terminalu sudo nano /etc/rc.local.

desgua
źródło
Nie jest dobrze, ponieważ używam Putty do zarządzania serwerem Debian, brak GUI :)
sed
Możesz umieścić polecenia (lub link do skryptu) w tym pliku:/etc/rc.local
desgua
Jest to alternatywa dla skryptu init.d, o który poprosił OP.
mc0e
1

Podejście /etc/rc.local „uruchomi bardzo proste polecenie podczas uruchamiania”, ale nie jest to podejście skryptowe init.d i pod wieloma względami jest gorsze. (To może nie mieć znaczenia, w zależności od celu).

W przeciwieństwie do skryptów init.d, komendy rc.local nie oferują standardowego interfejsu do uruchamiania i zatrzymywania procesu oraz nie mają dużej możliwości wpływania na proces uruchamiania. W /etc/init.d/rc.localskrypcie widać, że jest on uruchamiany po wszystkim innym ( Required-Start: $all).

Jeśli skrypt init.d naprawdę jest tym, czego chcesz, to zwykle wystarczy pobrać istniejący skrypt, skopiować go i edytować, działa dobrze, choć niektóre z istniejących skryptów mają większą złożoność niż chcesz. Ponieważ tak zaczyna się większość skryptów init.d, Ubuntu udostępnia w tym celu /etc/init.d/skeleton.

Warto również zajrzeć:

  • /etc/init.d/motdto minimalny przykład, który uruchamia coś podczas uruchamiania, ale z Required-Startustawieniem parametru, kiedy powinno to nastąpić.
  • /etc/init.d/cronjest prostym punktem wyjścia dla procesu demona (daj lub weź parse_environmentfunkcję, której prawdopodobnie nie potrzebujesz).
Mc0e
źródło