Jemné ladění spouštění na serveru Ubuntu. Vytvoření vlastního autorun skriptu při spuštění počítače Jak automaticky spustit příkaz v Linuxu

Domov / Technologie

Ubuntu má 2 hlavní úrovně autorun – v inicializačním systému systemd a v pracovním prostředí. U vlastního softwaru lze spuštění v Ubuntu nakonfigurovat v pohodlné grafické utilitě. Do automatického spouštění můžete přidat program nebo vlastní skript.

Autoboot v Ubuntu

Aktuální Ubuntu 18.04 ve výchozím nastavení používá jako pracovní prostředí GnomeShell. Ke konfiguraci automatického spouštění v této verzi operačního systému potřebujete:

Poraďte! Abyste se ujistili, že je příkaz správný, musíte nainstalovat nástroj „Hlavní nabídka“ z UbuntuSoftwareCenter.

V něm vyberte požadovanou položku a otevřete její vlastnosti. Správný příkaz zkopírován ze stejnojmenného řádku.

Aplikace v Ubuntu, které jsou přítomny v seznamu a označené zaškrtnutím, budou spuštěny při každém spuštění OS. To vše jsou aplikace daný uživatel, systémové programy a služeb, nástroj nezobrazí. V předchozí verze operační systém s grafickým shellem Unity, utilitu pro nastavení spouštění lze také najít vyhledáním v nabídce Dash nebo otevřít pomocí příkazu v terminálu:

vlastnosti gnome-session-properties.

Jak přidat skript ke spuštění Ubuntu

Kromě specifického softwaru je snadné přidat do spuštění Linuxu skript napsaný sám za sebe, abyste optimalizovali svou práci na počítači. K tomu potřebujete:

  1. Udělejte skript spustitelný pomocí příkazu:

    sudochmodugo+x /home/user/script.sh

    (kde user je uživatelské jméno a script je název skriptu, ale cesta k vašemu .sh souboru se může lišit: musí být zapsána celá, jinak se skript nespustí).

  2. Otevřete „Automaticky spouštět aplikace“ a klikněte na „Přidat“.
  3. Zadejte název skriptu a jako příkaz - celé jméno s cestou k souboru, například /home/user/script.sh.
  4. Klikněte na „Přidat“.

Existuje další, klasický, ale považovaný za zastaralý způsob, jak nakonfigurovat automatické spouštění skriptů v Ubuntu. K jeho dokončení potřebujete:


Tato metoda je vhodná i pro autoboot na UbuntuServeru, kde není žádná grafika.

Zpoždění spouštění programů v Ubuntu

Pokud je při spouštění Ubuntu hodně programů, je třeba je načíst v určitém pořadí nebo spustit nějakou dobu po nabootování systému – pomůže funkce zpoždění. Chcete-li jej aktivovat, použijte unixový nástroj spánku. Možnosti tohoto nástroje můžete využít v již známém programu Startup Applications. K tomu potřebujete:

  1. Otevřete okno nastavení spouštěcí aplikace.
  2. Kurzorem vyberte program, jehož automatické spuštění chcete zpozdit, a použijte tlačítko „Změnit“.
  3. V řádku „Příkaz“ před existující záznam zadejte:

kde číslo za slovem „sleep“ se rovná počtu sekund, po které je aplikace nečinná bezprostředně po spuštění systému, před spuštěním. Mezi tímto vzorcem, který musí mít na konci středník, a příkazem ke spuštění aplikace musí být mezera.

V uvedeném příkladu líného spouštění programů v Ubuntu zůstává aplikace před otevřením 2 minuty ve stavu „spánku“. Například spuštění půl hodiny po spuštění operačního systému bude vypadat jako spánek 3h „název programu“. Příklad, kdy přenos začne po 1 hodině:

spánek 1h; přenos-gtk %U

Podobným způsobem můžete ke spuštění v Linuxu přidat odložené spuštění vlastního skriptu nebo spuštění mediálního souboru.

Odstranění ze spuštění Ubuntu

Chcete-li odebrat software ze spouštění Ubuntu, můžete použít jednu ze 2 metod: prostřednictvím „Automaticky spouštěné aplikace“ nebo ručně. V prvním případě stačí spustit utilitu, vybrat požadovaný program a klikněte na "Smazat". Pouhým zrušením zaškrtnutí políčka se program deaktivuje a při startu systému se nespustí.

Ruční metoda zahrnuje použití složky autostart v Ubuntu. Nachází se na /home/username/.config/autostart/ (pro zobrazení skrytá složka, měli byste otevřít svůj domovský adresář v správce souborů a současně stiskněte Ctrl+H). Obsahuje soubory s příponou .desktop pro každý program z automatického spouštění, které se generují automaticky při přidání pomocí grafické utility. Stačí soubor smazat, aby se program po zapnutí počítače již neotevřel.

Závěr

Existuje mnoho způsobů, jak autoboot v Ubuntu jemné doladění. Jeho schopnosti jsou těžko uchopitelné. Správné použití tohoto nástroje činí Linux praktičtějším v každodenních úkolech.

Účelem tohoto článku je seznámit se s principy spouštění v operačním systému Ubuntu na Příklad Ubuntu Server 10.04 LTS, stejně jako ukázka nastavení spouštění virtuální stroj, běžící pod VirtualBoxem a správné vypnutí posledně jmenovaného v automatickém režimu při vypínání Ubuntu Serveru.

Pozor! Níže popsaný příklad nelze použít na spouštěcí nastavení grafické aplikace pro konkrétního uživatele systému v desktopových verzích Ubuntu. Chcete-li to provést, použijte položku „Spouštěcí aplikace“ z hlavní nabídky Ubuntu.


Za prvé, tohle automatický start služby/aplikace při spuštění operačního systému. Spuštění může také zajistit, že se tyto služby/aplikace řádně vypnou při vypnutí nebo restartu systému.

Organizace spouštění na serveru Ubuntu.
Samozřejmě pro správné spuštění/zastavení služby je nutné popsat skript s příkazy ke spuštění/zastavení. Podívejte se na obsah adresáře /etc/init.d: ​​obsahuje skripty, které řídí spouštění/zastavování služeb na vašem počítači. Takže prvním, ale ne posledním bodem úspěšné konfigurace je přítomnost skriptu v /etc/init.d. Skript nepopisuje, kdy by se měl konkrétní skript spustit. Může přijmout pouze parametry start, stop, restart a tak dále. Jak Ubuntu ví, kdy zavolat skript? Odpověď leží v adresářích /etc/rcN.d, kde N je číslo od 0 do 6. Tyto adresáře ukládají symbolické odkazy na skripty z /etc/init.d. Podívejme se, co každý adresář znamená, a vše bude okamžitě jasné:
- rc0.d – spuštění skriptu při vypnutém systému;
- rc1.d – spuštění skriptu při spuštění systému v režimu jednoho uživatele;
- rc2.d – spuštění skriptu při spuštění systému ve víceuživatelském režimu;
- rc3.d – rc5.d – vyhrazeno;
- rc6.d – spuštění skriptu při restartu systému.

Například, pokud dojde k restartu, budou provedeny všechny skripty z adresáře /etc/rc6.d při vypínání - z /etc/rc0.d atd. Číslo v názvu adresáře se nazývá úroveň běhu. To znamená, že adresář /etc/rc0.d se bude nazývat runlevel zero a tak dále.
Je zde ještě jeden důležitý bod, který potřebujete vědět – toto je pořadí, ve kterém se spouštějí skripty z adresářů rcN.d. Koneckonců, abyste správně zorganizovali spuštění/zastavení Ubuntu, možná budete muset spouštět/zastavovat služby v určitém pořadí. Tento bod je řešen speciálním pojmenováním souborů v adresářích runlevel. Soubory mají následující názvy: NN[jméno], kde je jeden znak („S“ znamená, že skript spustí službu, „K“ ji zastaví), NN je pořadové číslo, [jméno] je název souboru. Nemusíte si sami vybírat znak „S“ nebo „K“, protože všechny skripty v adresářích rc1.d-rc5.d musí začínat znakem „S“ a v rc0.d a rc6.d adresáře - se znakem „K“ . Číslo „NN“ určuje pořadí spouštění skriptů, které se provádí od nejmenšího po největší. Čím nižší je číslo pro spuštění skriptu, tím dříve bude spuštěn při startu systému; Čím větší je číslo skriptu zastavení služby, tím později bude spuštěn.

Pokud potřebujete spustit jakoukoli službu nebo aplikaci před nebo po konkrétní existující službě, jednoduše vyhledejte její sériové číslo v odpovídajícím adresáři rcN.d a vezměte ho v úvahu při výběru sériového čísla pro svůj skript.

No a kam skripty ukládat a jak je nazvat je jasné, ale jak to napsat?
Adresář /etc/init.d obsahuje příklad skriptu pro řízení spouštění/zastavování služeb. Soubor je /etc/init.d/skeleton a v příkladu níže bude zjednodušen. Chcete-li vytvořit nový skript, musíte vytvořit kopii příkladu a upravit jej tak, aby vyhovoval vašim potřebám. Použijme následující příkaz:
sudo cp /etc/init.d/skeleton /etc/init.d/myscript && vi /etc/init.d/myscript

Při vytváření nového skriptu mu nezapomeňte udělit spouštěcí práva. Chcete-li ke skriptu přidat oprávnění ke spuštění, použijte příkaz sudo chmod +x /etc/init.d/myscript

Scénář je připraven. co bude dál?
Některé zdroje obsahují doporučení pro ruční vytváření symbolických odkazů pomocí příkazu ln, přestože existují speciální pomůcky. Před přidáním skriptu obslužný program zkontroluje jeho platnost a příkaz ln vytvoří odkaz, i když se vyskytnou chyby. Je lepší dát přednost specializovaným utilitám, jako je update-rc.d, který je součástí Ubuntu. S jeho pomocí můžete přidat nový skript na libovolnou úroveň zatížení, odstranit stávající a tak dále. Zde je příklad použití:
sudo update-rc.d myscript start 99 2 3 4 5 . zastávka 01 0 1 6 .

Tento příkaz přidá nový skript "myscript" do všech úrovní zatížení. Služba bude spuštěna na úrovních 2 až 5 s prioritou 99 (poslední) a služba bude zastavena na úrovních 0, 1 a 6 s prioritou 01 (úplně první).
Chcete-li skript odebrat ze spuštění, použijte příkaz:
sudo update-rc.d -f myscript odstranit

Podívejme se na příklad nastavení automatického načítání.
Úkol: nakonfigurujte automatické spuštění virtuálního počítače se systémem VirtualBox, které by se mělo spustit dvě minuty po spuštění operačního systému Ubuntu Server. Když vypnete nebo restartujete Ubuntu Server, virtuální počítač by se měl řádně vypnout.
Předpokládejme, že Ubuntu Server má nainstalovaný VirtualBox a existuje virtuální stroj s názvem „Slave“, jehož operační systém podporuje možnost elegantního vypnutí po stisknutí tlačítka vypnutí (podpora ACPI).

Nejprve napíšeme skript, který bude umístěn v adresáři /etc/init.d:
sudo cp /etc/init.d/skeleton /etc/init.d/slave && sudo vi /etc/init.d/slave

Po úpravě skriptu a ponechání pouze nezbytného minima získáme soubor s následujícím obsahem:
#!/bin/sh ### BEGIN INIT INFO # Poskytuje: slave # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Stručný popis: schopnost pro spouštění a ukládání stavu provádění virtuálních počítačů VBox # Popis: Tento skript se používá pro spouštění a ukládání stavu provádění virtuálních počítačů VBox pomocí System-V na serveru Ubuntu. Tento soubor by měl být umístěn v /etc/init.d ### END INIT INFO # Autor: Fuks Alexander . /lib/lsb/init-functions # Spuštění virtuálního počítače Slave se zpožděním 2 minuty perform_start() ( log_daemon_msg "Spouštění počítače Vbox Slave" režim spánku 120 && su -l -c "VboxHeadless –startvm Slave &" kungfux log_end_msg 0 return 0 ) # Odeslat signál ACPI POWEROFF pro virtuální počítač Slave perform_save() ( log_daemon_msg "Odeslání signálu ACPI POWER OFF pro počítač Vbox Slave" su -l -c "VboxManage controlvm Slave acpipowerbutton" kungfux log_end_msg 0 return 0 ) case "$1 ” in start) perform_start ;;

stop) provést_uložit ;;

Kungfux@itworks:~$ sudo update-rc.d slave start 99 2 3 4 5 . zastávka 01 0 1 6 . Přidávání spouštění systému pro /etc/init.d/slave ... /etc/rc0.d/K01slave -> ../init.d/slave /etc/rc1.d/K01slave -> ../init.d/ slave /etc/rc6.d/K01slave -> ../init.d/slave /etc/rc2.d/S99slave -> ../init.d/slave /etc/rc3.d/S99slave -> ../ init.d/slave /etc/rc4.d/S99slave -> ../init.d/slave /etc/rc5.d/S99slave -> ../init.d/slave

Po restartování můžete zkontrolovat, zda byl příkaz spuštění virtuálního počítače dokončen. Podívejme se na úvodní zprávu:

Kungfux@itworks:~$ cat /var/log/boot.log fsck z util-linux-ng 2.17.2 /dev/sda1: čisté, 92526/4751360 souborů, 2565789/18975488 bloků * Spuštění Jenkins Continuous Integration Server * Spuštění Jenkins Continuous Integration Server Aktualizace dynamické adresy No-IP.com noip2 * Nespouští se internetový superserver: nejsou povoleny žádné služby * Spouštění postfixu Postfix Mail Transport Agent * Spouštění bittorrent démona přenosu-démon * Spouštění modulů jádra VirtualBox * Spouštění NTP serveru ntpd * Spouštění ftp serveru proftpd * Spouštění webu server apache2 * Spuštění stroje Vbox Slave

Poslední řádek obsahuje text, který byl vydán „slave“ skriptem.
Skripty napsané pro init.d lze navíc kdykoli použít z terminálu. Chcete-li například spustit virtuální počítač, spusťte příkaz:
kungfux@itworks:~$ /etc/init.d/slave start

Jak je vidět z ukázky, operační systém Ubuntu poskytuje bohaté možnosti pro ovládání spouštění/zastavování služeb/programů. Ve spouštěcích skriptech můžete popsat závislosti služeb, které se spouštějí/zastavují na jiných službách, pomocí sekcí „Vyžadováno spuštění/Vyžadováno-zastavení“ a samotný skript může být libovolně složitý, což vám umožní uspořádat i ty největší „delikátní“ spuštění.

Tento materiál byl napsán pro „První soutěž ruskojazyčných článků pro Ubuntu OS 2011“ (konkurs.ubuntu.ru).

Mnoho programů používáme neustále a spouštíme je při každém startu systému a některé, jako instant messenger nebo různé utility, musí neustále běžet na pozadí, aby správně plnily svůj úkol. Za tímto účelem v operační systémy existuje automatické načítání. Programy se spouštějí automaticky po spuštění OS nebo grafického prostředí.

V tomto článku budeme hovořit o tom, jak funguje autoboot v Ubuntu, jaké metody spouštění existují v tomto systému a jak tam přidávat programy.

AUTOBOOT V UBUNTU

První věc, kterou je třeba říci, je, že v Ubuntu existuje několik úrovní spouštění. Nebudu mluvit o systemd a , protože jsem o tom již hovořil v jednom z prvních článků. Program nebo skript lze přidat do spuštění následujícími způsoby:

  • Utility "Automaticky spouštěné aplikace";
  • složka "Po spuštění";
  • Soubor rc.local;
  • soubor Xinitrc;

Budeme zvažovat první dvě metody, protože poslední dvě jsou spíše určeny pro skripty než pro programy. Nejprve autoboot do Ubuntu pomocí standardního nástroje.

Otevřete systémovou nabídku a zadejte "Auto" a otevřete program, který bude první v seznamu, Startup Applications:

Zde budou uvedeny všechny aplikace, které se aktuálně spouštějí automaticky. Chcete-li do spouštění ubuntu přidat další aplikaci, klikněte na tlačítko "Přidat":

Zde musíte zadat název nové položky a také příkaz ke spuštění aplikace. Aplikaci si můžete vybrat v souborový systém, pokud si nepamatujete cestu, stiskněte tlačítko "Recenze":

V případě potřeby můžete zadat parametry v příkazu. Můžete také vyplnit pole "Popis", ale to již není nutné. Pokud potřebujete konkrétní program z hlavní nabídky, ale nevíte, kde ji najít a jak napsat její příkaz, můžete ji vyhledat ve stejné nabídce. K tomu však musíme nejprve nainstalovat obslužný program "Hlavní menu" z App Center:

Zde je třeba dávat pozor na linii "Tým", zkopírujte jej a můžete jej použít pro spuštění.

Další metodou je spouštěcí složka. Nachází se na adrese ~/.config/autostart. V podstatě se jedná o stejnou metodu, pouze ji lze provést bez grafického rozhraní. Když nakonfigurujete spouštění prostřednictvím aplikace, v této složce se vytvoří soubory nastavení s názvem desktop. Například zde:

Připomínám, že abyste se podívali skryté soubory musíte stisknout kombinaci kláves Ctrl+H. Nyní se pokusíme vytvořit nový konfigurační soubor pro jiný program. Toto je jeho syntaxe:


Typ = Aplikace
Jméno = název_nové_položky
Exec = příkaz
Ikona = úplná_cesta_k_ikoně
Komentář = komentář
X-GNOME-Autostart-enabled= věrný

Vytvořme například soubor pro spuštění přehrávače VLC, bude vypadat takto:

vi ~/.config/autostart/vlc.desktop


Typ = Aplikace
Jméno=VLC
Exec=vlc
Icon=/usr/share/icons/hicolor/16x16/apps/vlc.png
Komentář=VLC Media Player
X-GNOME-Autostart-enabled=true

Hotovo a zábavná část je, že pokud otevřete spouštěcí aplikaci. Tato položka se tam také objeví. Toto je způsob konfigurace bez grafického rozhraní.

ZÁVĚRY

V tomto krátkém článku jsme se podívali na to, jak se konfiguruje automatické načítání programy ubuntu různými způsoby- skrz GUI a terminál. Tyto znalosti můžete využít ke zlepšení své zkušenosti se systémem. I když Ubuntu přešlo na Gnome, spuštění v Ubuntu 16.04 vypadá stále téměř stejně. Pokud máte nějaké dotazy, zeptejte se v komentářích!

Související příspěvky:


Po spuštění počítače zpravidla musíme spustit nějaké programy. které používáme nejčastěji. Také po spuštění systému možná budeme muset vykonat nějaké specifické úsilí, například vytvořit potřebné soubory nebo nastavit nějaké parametry. V tomto článku se podíváme na to, jak funguje autoload Linuxu, jak přidávat spouštěcí programy, kam by bylo vhodnější je přidat a také jaké typy autoloadu v tomto operačním systému existují.

Postup pro zahrnutí služby do spuštění Linuxu předpokládá, že požadovaný program je již nainstalován pomocí správce balíčků nebo je zkompilován. Celkový pohled na hovor potřebné příkazy uvedeno v příkladu níže.

systemctl povolit service_name.service
update.rc výchozí nastavení název_služby
chkconfig --add název_služby

Přidávání programů ke spuštění v Linuxu

Tento příklad popisuje, jak přidat nginx do spuštění? Ze stejného důvodu přidáváme další programy! Nejprve musíte nastavit práva pro spuštění souboru:

chmod +x /etc/init.d/nginx

Poté jej zapíšeme do automatického načítání:

/usr/sbin/update-rc.d -f výchozí nastavení nginx

Přidávání programů ke spuštění v Linuxu

Vytvořte soubor v /etc/init.d/

sudo nano /etc/init.d/

Na začátek skriptu je třeba přidat:

Nastavte práva k provedení na /etc/init.d/local:

sudo chmod +x /etc/init.d/local

Přidejte skript /etc/init.d/local do automatického spuštění:

místní výchozí nastavení sudo update-rc.d 80

Nyní můžeme do našeho lokálního skriptu přidat příkazy, které musí být provedeny při startu systému.

Vytvořte prázdný soubor.

V prvním řádku píšeme:

#!/bin/sh

Tento řádek určuje, který příkazový shell se má použít. Další jsou vaše týmy.

Uložme jej pod původním názvem (aby se neshodoval s existujícími) do adresáře /usr/sbin/.

Aby skript běžel při bootování, musíte jej zaregistrovat v souboru /etc/rc.local až do řádku exit 0. Pokud nemáte tento soubor, vytvořte jej a vložte do něj následující obsah:

#!/bin/sh -e #Sem vložíme řádek označující váš skript. /usr/sbin/mescripts exit 0

Trochu složitější způsob

Umožňuje nastavit sekvenci načítání a chování skriptu na různých úrovních běhu.

Prostudujeme /etc/init.d/skeleton, na jeho základě vytvoříme skript /etc/init.d/my_script, který spustí/zastaví naši aplikaci.

Tyto adresáře obsahují skripty pro zastavení služeb:

/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/

Toto jsou skripty pro spuštění služby:

/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/

Zkoumáme jejich konzistenci (čím menší je první číslice na začátku skriptu, tím dříve se aplikace spustí/zastaví). To může být kritické, pokud vaše aplikace závisí na některých službách.

Poté, co jsme se rozhodli pro spouštěcí skript a sekvenci, provedeme následující:

Sudo update-rc.d my_script start 70 2 3 4 5 . zastávka 20 0 1 6 .

Zde jsem určil, že můj skript by měl začít později než ostatní (70) a skončit dříve (20). Čísla 2 3 4 5 0 1 6 označují úrovně zatížení.

Pokud se vám něco nelíbí, můžete vše smazat

Sudo update-rc.d -f my_script odstranit

Podrobnosti viz man update-rc.d.

Spuštění skriptu při zapnutí/vypnutí sítě

Existuje adresář /etc/network/ s podadresáři if-down.d , if-pre-up.d , if-post-down.d , if-up.d . Pokud skript umístíte do jednoho z těchto podadresářů, bude proveden při vypnutí, před zapnutím, po vypnutí nebo při zapnutí sítě.

Dalším způsobem je zadat jednu z následujících direktiv v souboru /etc/network/interfaces: up , pre-up , post-up , down , pre-down , post-down . Například čára

Post-up /cesta/k/script.sh

po zapnutí sítě spustí skript skript.sh. Více si můžete přečíst v man interfaces.

V každém případě musí mít skript oprávnění k povolení spuštění, jinak nebude možné jej spustit.

© 2024 ermake.ru -- O opravě PC - Informační portál