Jak automatycznie uruchamiać polecenia i skrypty systemu Linux przy ponownym uruchomieniu systemu?

How Run Linux Commands



Automatyczne uruchamianie aplikacji i skryptów podczas uruchamiania może być przydatne do automatyzacji typowych zadań i zdarzeń związanych z uruchamianiem. W tym artykule wyjaśnimy kilka metod, których można użyć do uruchamiania aplikacji i skryptów po ponownym uruchomieniu lub nowym logowaniu.

Aplikacje startowe

Ubuntu i inne dystrybucje oparte na GNOME są dostarczane z aplikacją o nazwie Aplikacje startowe. Może być używany do zarządzania aplikacjami i skryptami uruchamianymi po ponownym uruchomieniu systemu lub logowaniu.







Uruchom aplikację Startup Applications z programu uruchamiającego aplikacje i kliknij przycisk Dodaj, aby dodać nowy wpis.





Wypełnij pola Nazwa i Polecenie zgodnie ze swoimi potrzebami, a następnie kliknij przycisk Dodaj, aby zakończyć tworzenie nowego wpisu. Wpis utworzony na poniższym zrzucie ekranu wyśle ​​przypomnienie o utworzeniu kopii zapasowej jako powiadomienie systemowe przy każdym ponownym uruchomieniu / logowaniu. Możesz go zastąpić własnym poleceniem lub pełną ścieżką swojego skryptu bash. Możesz także użyć dowolnego istniejącego polecenia systemowego lub plików wykonywalnych zwykle znajdujących się w różnych folderach bin w całym systemie plików.





Jak wspomniano powyżej, przy każdym ponownym uruchomieniu wyświetlane jest przypomnienie o kopii zapasowej.



Systemd

Systemd to demon i menedżer usług, który zawiera różne narzędzia do zarządzania procesami systemowymi i komponentami systemu operacyjnego. W swojej uproszczonej formie jest zwykle używany do uruchamiania i kończenia usług w nowym cyklu rozruchowym.

Systemd może być używany do automatycznego uruchamiania aplikacji lub uruchamiania skryptu przy nowym rozruchu. Aby utworzyć to samo powiadomienie przypominające o kopii zapasowej, jak opisano powyżej, najpierw musisz utworzyć wymagane foldery i plik, uruchamiając poniższe polecenia:

$mkdir -P~/.config/system/użytkownik
$nano~/.config/system/użytkownik/backup_reminder.service

Zastąp nano poleceniem swojego ulubionego edytora tekstu. Zastąp backup_reminder dowolną inną nazwą.

Wklej poniższy kod w pliku backup_reminder.service utworzonym za pomocą powyższego polecenia.

[Jednostka]
Description=Wysyła przypomnienie o kopii zapasowej przy każdym ponownym uruchomieniu
PartOf=sesja-graficzna.cel

[Praca]
ExecStart=bash -c 'snu 10; notify-send 'Utwórz kopię zapasową'
Typ = jeden strzał

[Zainstalować]
WantedBy=sesja-graficzna.cel

Powyższy kod jest dość prosty. Wysyła powiadomienie Utwórz kopię zapasową 10 sekund po załadowaniu sesji graficznej (po każdym ponownym uruchomieniu lub logowaniu).

Uruchom poniższe polecenia, aby włączyć usługę, aby mogła automatycznie uruchamiać się przy każdym ponownym uruchomieniu.

$chmod 644~/.config/system/użytkownik/backup_reminder.service
$ system ctl--użytkownik włączyćbackup_reminder.service
$ system ctl--użytkownikdemon-reload
$ restart

To tylko prosty przykład uruchamiania podstawowego polecenia podczas rozruchu za pomocą systemd. Możesz także tworzyć zaawansowane usługi z wieloma warunkami i wieloma poleceniami. Aby uzyskać więcej informacji, zapoznaj się ze stroną podręcznika systemd, uruchamiając poniższe polecenie:

$facetsystem

Pamiętaj, że ten przykład wyjaśnia tworzenie nowej usługi, która nie wymaga uprawnień administratora i jest odpowiednia dla aplikacji uruchamiających się automatycznie, które nie wymagają uprawnień administratora. Jeśli chcesz automatycznie uruchamiać skrypty wymagające uprawnień administratora, musisz utworzyć nową usługę systemd w katalogu /etc/systemd/system zamiast ~/.config/systemd/user i pominąć -user switch we wspomnianych powyżej poleceniach.

Praca Crona

Cron to narzędzie, które może okresowo uruchamiać zaplanowane zadania zgodnie z warunkami określonymi przez użytkownika. Te zaplanowane zadania są tworzone w programie Crontab w predefiniowanym formacie. Mówiąc prościej, Crontab mówi Cronowi, które zadania mają być uruchomione w jakim momencie.

Podobnie jak systemd, zadania crontab mogą być używane do uruchamiania aplikacji i automatycznego uruchamiania skryptów podczas rozruchu. Aby dodać nowe zadanie cron, uruchom poniższe polecenie:

$crontab-I

Dodaj następujące wiersze na końcu pliku tekstowego (automatycznie uruchamia terminal GNOME przy każdym ponownym uruchomieniu):

POWŁOKA=/kosz/bash
@reboot sleep 30 && DISPLAY=:0 gnome-terminal

Możesz użyć własnego polecenia lub podać pełną ścieżkę do skryptu powłoki.

Zauważ, że w przeciwieństwie do systemd, cron nie może wykryć, czy sesja graficzna została załadowana, czy nie. Musisz określić szacowany czas oczekiwania na załadowanie serwera X oraz identyfikator wyświetlania. Możesz dowiedzieć się o swoim identyfikatorze wyświetlania, uruchamiając poniższe polecenie:

$wyrzucił $WYŚWIETLACZ

Opóźnienie przed wykonaniem polecenia lub skryptu zależy od konfiguracji systemu i czasu rozruchu.

Rc.local

Inną metodą uruchamiania skryptów i poleceń podczas uruchamiania jest użycie pliku rc.local. Zauważ, że podczas moich testów nie byłem w stanie odroczyć wykonania skryptu do czasu uruchomienia sesji graficznej. Dodanie jakiegokolwiek opóźnienia uśpienia prowadzi do opóźnienia w wyświetlaniu samego ekranu logowania. Z tego powodu nie udało mi się uruchomić aplikacji graficznych przy starcie przy użyciu pliku rc.local. Edycja rc.local również wymaga uprawnień administratora, w przeciwieństwie do wszystkich innych przykładów wyjaśnionych powyżej.

Aby dodać polecenia / skrypty do pliku rc.local, uruchom poniższe polecenie (tworzy nowy plik rc.local, jeśli nie istnieje):

$sudo nano /itp/rc.lokalny

Dodaj swoje polecenia między #! /bin/bash i wyjdź z linii 0, jak pokazano poniżej:

#! /bin/bash
ścieżka/do/moj_skrypt.sh
wyjście 0

Spraw, aby plik rc.local był wykonywalny, uruchamiając poniższe polecenie:

$sudo chmod+ x/itp/rc.lokalny

Po prostu uruchom ponownie, aby skrypt startowy zaczął działać.

Wniosek

Oto kilka metod, których można użyć do automatycznego uruchamiania skryptów i aplikacji podczas uruchamiania. Jeśli chcesz uruchamiać skrypty, które nie wymagają uprawnień administratora, polecam użycie aplikacji Startup Applications GUI. Jeśli chcesz uruchamiać aplikacje i skrypty z uprawnieniami administratora, sugerowałbym utworzenie usługi systemowej na poziomie systemu.

O autorze

Nitesh Kumar

Jestem niezależnym programistą i autorem treści, który kocha Linuksa, oprogramowanie open source i społeczność wolnego oprogramowania.

Zobacz wszystkie posty