Von der Crontab-Manpage:
Jobs in /etc/cron.d/
Die Jobs in cron.d sind Systemjobs, die normalerweise für mehr als einen Benutzer verwendet werden. Aus diesem Grund wird der Name des Benutzers benötigt. MAILTO in der ersten Zeile ist optional.
BEISPIEL FÜR JOB IN /etc/cron.d/job
#login as root
#create job with preferred editor (e.g. vim)
MAILTO=root
* * * * * root touch /tmp/file
Das ist der ganze Abschnitt über crontab in /etc , also schätze ich, dass die Einbeziehung des Benutzers, unter dessen Namen der Job läuft, tatsächlich das einzige ist Unterschied.
Wieder von derselben Manpage:
Diese speziellen „Spitznamen“ für die Zeitangabe werden unterstützt, die die 5 anfänglichen Zeit- und Datumsfelder ersetzen und denen das Zeichen „@“ vorangestellt ist:
@reboot :Nach dem Neustart einmal ausführen.
Daher Ihre Schlussfolgerung, dass @reboot richtig verwendet wird ist
@reboot user_name command
ist richtig .
Wenn Sie es wie unten interaktiv ausführen, geben Sie den Benutzer nicht an:
crontab -e
@reboot /root/mycommand
Wenn Sie es als Datei in /etc/cron.d ablegen, z. /etc/cron.d/mycronfile, müssen Sie den Benutzer eingeben:
@reboot root /root/mycommand