Z manuálové stránky crontab:
Úlohy v /etc/cron.d/
Úlohy v cron.d jsou systémové úlohy, které se obvykle používají pro více než jednoho uživatele. To je důvod, proč je potřeba jméno uživatele. MAILTO na prvním řádku je nepovinné.
PŘÍKLAD PRO ÚLOHU V /etc/cron.d/job
#login as root
#create job with preferred editor (e.g. vim)
MAILTO=root
* * * * * root touch /tmp/file
To je celá sekce o crontab v /etc , takže předpokládám, že zahrnutí uživatele, pod jehož jménem úloha běží, je skutečně jediným rozdíl.
Opět ze stejné manuálové stránky:
Jsou podporovány tyto speciální časové specifikace „přezdívky“, které nahrazují 5 počátečních polí času a data a před nimi je znak '@':
@reboot :Spustit jednou po restartu.
Z toho vyplývá, že správný způsob použití @reboot je
@reboot user_name command
je správné .
Pokud jej spouštíte interaktivně, jak je uvedeno níže, neurčujete uživatele:
crontab -e
@reboot /root/mycommand
Pokud jej vkládáte jako soubor do /etc/cron.d, např. /etc/cron.d/mycronfile, musíte zadat uživatele:
@reboot root /root/mycommand