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

How Run Linux Commands

Automatické spouštění aplikací a skriptů při spuštění může být užitečné pro automatizaci běžných spouštěcích úloh a událostí. 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. Lze jej použít pro správu aplikací a skriptů, které běží při restartu nebo přihlášení nového systému.



Spusťte aplikaci Spouštěcí aplikace ze spouštěče aplikací a kliknutím na tlačítko Přidat 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 úplnou cestou skriptu bash. 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 složkách bin v systému souborů.

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 součástí operačního systému. Ve své zjednodušené podobě se obvykle používá ke spouštění a ukončování 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álohování vysvětlené výše, musíte nejprve vytvořit požadované složky a soubor spuštěním níže uvedených příkazů:

$mkdir -p~/.konfig/systemd/uživatel
$nano~/.konfig/systemd/uživatel/služba backup_reminder.service

Nahraďte nano příkazem vašeho oblíbeného textového editoru. Nahraďte backup_reminder jakýmkoli jiným jménem, ​​které upřednostňujete.

Vložte níže uvedený kód do souboru backup_reminder.service vytvořeného pomocí výše uvedeného příkazu.

[Jednotka]
Popis = Odesílá záložní připomenutí při každém restartu
PartOf = graphical-session.target

[Servis]
ExecStart = bash -c 'spánek 10; oznámit-odeslat 'Vytvořit zálohu' '
Zadejte = oneshot

[Nainstalujte]
WantedBy = graphical-session.target

Výše uvedený kód je docela přímočarý. Odešle oznámení Make a Backup 10 sekund po načtení grafické relace (jednou při každém restartu nebo přihlášení).

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

$chmod 644~/.konfig/systemd/uživatel/služba backup_reminder.service
$ systemctl--uživatel umožnitslužba backup_reminder.service
$ systemctl--uživatelznovu načíst démona
$ restart

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

$mužsystemd

Tento příklad vysvětluje vytvoření nové služby, která nevyžaduje root přístup 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 namísto ~/.config/systemd/user a ve výše uvedený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 zadaných uživatelem. Tyto naplánované úlohy jsou vytvářeny v Crontabu v předem definovaném formátu. Jednoduše řečeno, Crontab řekne Cronovi, jaké úlohy se mají spustit v jakém časovém okamžiku.

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-A

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

SHELL =/bin/bash
@restartujte spánek 30 && DISPLAY =: 0 gnome-terminal

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

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

$vyhodil $ DISPLAY

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

Rc.local

Další metodou spouštění skriptů a příkazů při spuštění je použití souboru rc.local. 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í jakéhokoli zpoždění spánku povede ke zpoždění při zobrazování samotné přihlašovací obrazovky. Z tohoto důvodu jsem neměl žádný úspěch při spouštění grafických aplikací při spuštění pomocí souboru rc.local. Úpravy rc.local také vyžadují root přístup, na rozdíl od všech ostatních příkladů vysvětlených výše.

Chcete -li do souboru rc.local přidat příkazy / skripty, spusťte následující příkaz (vytvoří nový soubor rc.local, pokud neexistuje):

$sudo nano /atd/rc.local

Přidejte své příkazy mezi #! /bin/bash a ukončete 0 řádků, jak je uvedeno níže:

#! /bin/bash
cesta/k/my_script.sh
výstup 0

Vytvořte rc.local spustitelný soubor spuštěním níže uvedeného příkazu:

$sudo chmod+ x/atd/rc.local

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

Závěr

Toto je několik metod, které lze použít k automatickému spouštění skriptů a aplikací při spuštění. Pokud chcete spouštět skripty, které nevyžadují přístup root, doporučil bych použít aplikaci GUI pro spuštění aplikací. Pokud chcete spouštět aplikace a skripty s přístupem root, doporučil bych vám vytvořit službu systemd systemd.

O autorovi

Nitesh Kumar

Jsem vývojář a autor obsahu na volné noze, který miluje Linux, open source software a komunitu svobodného softwaru.

Zobrazit všechny příspěvky