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