GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu spustit příkaz po spuštění?

Záleží na distribucích.

Pokud používáte distribuce odvozené z Debianu, existují alespoň dvě správná místa, /etc/rc.local a crontab. Můžete vyvolat crontab jako root,

   crontab -e

a poté vložte tento řádek

   @reboot /home/my_name/bin/my_command

kde my_command je spustitelný soubor (chmod 755 my_command ).

Případně můžete umístit řádek takto

   /home/my_name/bin/my_command

v /etc/rc.local, a to bude provedeno jako poslední. V každém případě si prosím pamatujte, že používáte kořenové prostředí, ne vaše. Také z tohoto důvodu je nejlepší používat absolutní cesty.

Pokud jste na systemd distro (Arch Linux, Fedora 19,...) první možnost (crontab) je stále platná, zatímco druhá (/etc/rc.local) již neexistuje. V tomto případě byste se měli naučit, jak spustit službu, která má být spuštěna systemctl , ale to může být více, než jste se svou jednoduchou otázkou dohodli.


Pokud váš systém používá verzi cron který jej podporuje (konkrétně Vixie cron), můžete použít @reboot v cronu.

Toto je jeden z 8 speciálních řetězců, které podporuje.

Cituji crontab(5) manuálová stránka (z mého systému Ubuntu 12.04):

Místo prvních pěti polí se může objevit jeden z osmi speciálních řetězců:

string         meaning
------         -------
@reboot        Run once, at startup.
@yearly        Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily         Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *".

Vezměte prosím na vědomí, že spuštění až do @reboot je čas, kdy cron(8) spuštění démona. Zejména to může být před spuštěním některých systémových démonů nebo jiných zařízení. To je způsobeno pořadím spouštění počítače.

Zdaleka to není jediný způsob, jak něco spustit při spouštění, ale je to alternativa.


Téměř všechny varianty Linuxu (dávno dlouhou, dlouhou dobu) mají soubor /etc/rc.local, který se spouští při startu – stačí do něj přidat příkaz.

To znamená, že to ani nemusíte dělat. "Správným" způsobem by bylo upravit / přidat řádek kernel.sysrq =1 do /etc/sysctl.conf


Linux
  1. Jak spustíme příkaz uložený v proměnné?

  2. Jak integrovat příkaz MV po příkazu Najít?

  3. Jak mohu automaticky spouštět skripty při spouštění v Centos 7?

  1. Jak mohu správně spouštět skripty příkazového řádku Perl one-liner?

  2. linux:jak spustit příkaz v daném adresáři

  3. Jak spustit příkaz po dokončení již běžícího, existujícího?

  1. Jak spustit příkaz jako správce systému (root)?

  2. Jak spustit program při startu?

  3. Jak pomocí nohup pokračovat ve spouštění příkazu po odhlášení uživatele?