Příkazy pro Linux

Jak automaticky spouštět příkazy a skripty Linuxu při restartu systému

Jak automaticky spouštět příkazy a skripty Linuxu při restartu systému
Automatické spouštění aplikací a skriptů při spuštění může být užitečné pro automatizaci běžných úloh a událostí při spouštění. Tento článek vysvětlí několik metod, které lze použít ke spouštění aplikací a skriptů při novém restartu nebo novém přihlášení.

Spouštěcí aplikace

Ubuntu a další distribuce založené na GNOME přicházejí s aplikací jednoduše nazvanou „Startup Applications“. Může být použit pro správu aplikací a skriptů, které běží na novém restartu systému nebo přihlášení.

Spusťte aplikaci „Startup Applications“ ze spouštěče aplikací a kliknutím na tlačítko „Add“ přidejte novou položku.

Vyplňte pole „Název“ a „Příkaz“ podle svých potřeb a poté kliknutím na tlačítko „Přidat“ dokončete vytváření nové položky. Položka vytvořená na níže uvedeném snímku obrazovky odešle připomenutí „Vytvořit zálohu“ jako systémové upozornění při každém restartu / přihlášení. Můžete jej nahradit vlastním příkazem nebo celou cestou vašeho bash skriptu. Můžete také použít jakýkoli existující systémový příkaz nebo spustitelné soubory, které se obvykle nacházejí v různých „bin“ složkách napříč souborovým systémem.

Jak je uvedeno výše, při každém restartu se zobrazí připomenutí zálohy.

Systemd

Systemd je démon a správce služeb, který obsahuje různé nástroje pro správu systémových procesů a komponent OS. Ve své zjednodušené formě se obvykle používá ke spuštění a ukončení služeb v novém zaváděcím cyklu.

Systemd lze použít k automatickému spuštění aplikace nebo spuštění skriptu při novém spuštění. Chcete-li vytvořit stejné upozornění na připomenutí zálohy vysvětlené výše, musíte nejprve vytvořit požadované složky a soubor spuštěním následujících příkazů:

$ mkdir -p ~ /.config / systemd / uživatel
$ nano ~ /.config / systemd / user / backup_reminder.servis

Nahraďte „nano“ příkazem svého oblíbeného textového editoru. Nahraďte „backup_reminder“ jakýmkoli jiným jménem, ​​které dáváte přednost.

Vložte níže uvedený kód do záložního_paměti.servisní soubor vytvořený pomocí výše uvedeného příkazu.

[Jednotka]
Popis = Při každém restartu odešle připomenutí zálohy
PartOf = grafická relace.cílová
[Servis]
ExecStart = bash -c 'spánek 10; upozornit na odeslat "Vytvořit zálohu" "
Typ = onehot
[Nainstalujte]
WantedBy = grafická relace.cílová

Výše uvedený kód je docela přímočarý. Odešle oznámení „Vytvořit zálohu“ 10 sekund po načtení grafické relace (jednou za každé restartování nebo přihlášení).

Spuštěním níže uvedených příkazů povolte službu, aby se mohla automaticky spouštět při každém restartu.

$ chmod 644 ~ /.config / systemd / user / backup_reminder.servis
$ systemctl --user povolit backup_reminder.servis
$ systemctl --user daemon-reload
$ restart

Toto je jen jednoduchý příklad spuštění základního příkazu při bootování pomocí systemd. Můžete také vytvořit pokročilé služby s více podmínkami a více příkazy. Další informace naleznete na stránce systemd man spuštěním následujícího příkazu:

$ man systemd

Tento příklad vysvětluje vytváření nové služby, která nevyžaduje přístup root a je vhodná pro automatické spouštění aplikací, které nevyžadují oprávnění root. Pokud chcete automaticky spouštět skripty vyžadující přístup root, musíte vytvořit novou službu systemd v adresáři „/ etc / systemd / system“ místo „~ /.složku config / systemd / user a ve výše zmíněných příkazech vynechat přepínač „-user“.

Cron Job

Cron je nástroj, který může pravidelně spouštět naplánované úlohy podle podmínek určených uživatelem. Tyto naplánované úlohy se vytvářejí v Crontabu v předem definovaném formátu. Jednoduše řečeno, Crontab řekne Cronu, které úlohy se mají v jakém okamžiku spustit.

Stejně jako systemd lze úlohy crontab použít ke spouštění aplikací a automatickému spouštění skriptů při spuštění. Chcete-li přidat novou úlohu cron, spusťte následující příkaz:

$ crontab -e

Přidejte následující řádky na konec textového souboru (automaticky spustí terminál GNOME při každém restartu):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 terminál gnome

Můžete použít vlastní příkaz nebo zadat úplnou cestu ke skriptu prostředí.

Všimněte si, že na rozdíl od systemd cron nedokáže zjistit, zda byla načtena grafická relace nebo ne. Musíte určit odhadovanou dobu čekání, než se načte X server, a identifikátor zobrazení. O svém ID zobrazení můžete vědět spuštěním následujícího příkazu:

$ echo $ DISPLEJ

Zpoždění před provedením příkazu nebo skriptu závisí na konfiguraci systému a době spuštění.

Rc.místní

Další metodou spouštění skriptů a příkazů při spuštění je použití „rc.místní ”soubor. Všimněte si, že při mém testování jsem nebyl schopen odložit spuštění skriptu, dokud nebyla grafická relace aktivní. Přidání zpoždění spánku vede ke zpoždění při zobrazování samotné přihlašovací obrazovky. Z tohoto důvodu jsem neměl úspěch při spuštění grafických aplikací při spuštění pomocí rc.místní soubor. Editace stránky rc.local také vyžaduje přístup root, na rozdíl od všech ostatních výše vysvětlených příkladů.

Přidání příkazů / skriptů do rc.lokální soubor, spusťte příkaz níže (vytvoří nový rc.místní soubor, pokud neexistuje):

$ sudo nano / etc / rc.místní

Přidejte své příkazy mezi „#! / bin / bash “a„ exit 0 “řádky, jak je znázorněno níže:

#! / bin / bash
path / to / my_script.sh
výstup 0

Vydělejte rc.spustitelný místní soubor spuštěním následujícího příkazu:

$ sudo chmod + x / etc / rc.místní

Stačí restartovat, aby se spouštěcí skript projevil.

Závěr

Jedná se o několik metod, které lze použít k automatickému spouštění skriptů a aplikací při spuštění. Pokud hledáte spouštět skripty, které nevyžadují přístup root, doporučil bych použít aplikaci GUI „Startup Applications“. Pokud chcete spouštět aplikace a skripty s přístupem root, doporučuji vám vytvořit systémovou službu na úrovni systému.

O autorovi

Nitesh Kumar

Jsem vývojář softwaru na volné noze a autor obsahu, který miluje Linux, software s otevřeným zdrojovým kódem a komunitu svobodného softwaru.

Zobrazit všechny příspěvky
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...
Hry OpenTTD vs Simutrans
OpenTTD vs Simutrans
Vytvoření vlastní simulace dopravy může být zábavné, uvolňující a mimořádně lákavé. Proto se musíte ujistit, že vyzkoušíte co nejvíce her, abyste našl...
Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...