GNU/Linux >> Znalost Linux >  >> Linux

Jaký je linuxový ekvivalent Windows Startup?

Něco jako Cron?

Všimněte si @reboot vstup

Toto je nejflexibilnější přístup a nejvíce se podobá „Naplánovaným úlohám“ systému Windows (ve skutečnosti je lepší).


Automatické spuštění Xorg

Kromě spouštěcích skriptů na úrovni systému může mít vaše desktopové prostředí svůj vlastní způsob automatického spouštění programů. Složka .config/autostart má být desktopově neutrální způsob definování položek automatického spouštění. /etc/xdg/autostart je pro konfiguraci celého systému. Podrobnosti o specifikaci na http://developer.gnome.org/autostart-spec/.

Pro LXDE lze položky automatického spuštění nastavit také v ~/.config/lxsession/LXDE/autostart .

Je to trochu jiné, pokud potřebujete spouštět skripty po síť je v provozu. V takovém případě byste měli zkontrolovat speciální skripty po připojení, které lze definovat pro vašeho správce sítě. Oba NetworkManager a wicd mají své vlastní způsoby zadávání položek automatického spuštění po připojení. Pokud je síť nakonfigurována pomocí ifupdown , pak lze post-up skripty umístit do /etc/network/if-up.d/ složku. Ale lepší přístup ke spouštění skriptů po připojení by mohl být systemd (pro systémy, které to podporují, což je většina moderních distribucí).

Automatické spuštění jako systémová služba

Pokud věc, kterou chcete automaticky spustit, není grafická aplikace, která vyžaduje plochu, pak je nejlepší vyhnout se používání jakýchkoli funkcí automatického spouštění, které poskytuje xorg nebo vaše aktuální desktopové prostředí.

systemd se stal všudypřítomným v mnoha moderních distribucích a nabízí hodně kontroly a flexibility, pokud jde o to, jak jsou vaše služby spuštěny a jak běží.

Shrnu některé výhody (systemd toho umí mnohem víc ):

  • Spustit jako root nebo jako konkrétní uživatel:např. User=myuser
  • Restartujte služby při selhání s konfigurovatelnými časovými limity:Restart=on-failure|on-watchdog|on-abnormal|always
  • Nastavení typu služby:Type=simple|forking|oneshot|notify|dbus
  • Stanovte předpoklady pro spuštění a závislosti, tj. můžete nastavit, aby se služba spustila po připojení sítě (Wants=network-online.target v [Unit] sekce).

Příklad služby, která spouští démona telegram-cli. Umístěte jej do /etc/systemd/system/tg.service .

[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli

User=jicu

[Install]
WantedBy=multi-user.target

Nyní můžete povolit automatické spouštění služby:

sudo systemctl enable tg

Spusťte službu:

sudo systemctl start tg

Zastavte službu:

sudo systemctl stop tg

Zkontrolujte stav:

systemctl status tg

Zakázat službu:

sudo systemctl disable tg

Chcete-li si ušetřit další psaní, můžete přidat ~/.bashrc řádek alias sc='sudo systemctl $*' pak budete moci zkrátit výše uvedené příkazy např. sc start tg .

Více informací:

  • Porozumění systemd
  • systémové služby
  • systémové jednotky

Ano, na Linuxu je možné spouštět programy při startu definováním cest ke spustitelným souborům v rc.local který buď sídlí v /etc nebo /etc/rc.d adresář, např.:

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/path/to/executable

Poznámka:nezapomeňte přiřadit spustitelná práva, jak je popsáno v dokumentaci souboru, tj. Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.


Linux
  1. Co dělá Linux udržitelným OS

  2. Linux vs. Unix:Jaký je rozdíl?

  3. Jaké je nejlepší VPS:Windows nebo Linux?

  1. Jaký je správný způsob, jak spustit službu mongod na linux / OS X?

  2. Jaký je ekvivalent getch() &getche() v Linuxu?

  3. Jaký je ekvivalent C++ pro AutoResetEvent pod Linuxem?

  1. Co je Windows analogem příkazu watch v systému Linux?

  2. Jaký je ekvivalent linuxového příkazu sudo fdisk -l v MacOS?

  3. Co je ekvivalentem Active Directory v Linuxu