Desde la página de manual de crontab:
Empleos en /etc/cron.d/
Los trabajos en cron.d son trabajos del sistema, que normalmente se utilizan para más de un usuario. Esa es la razón por la que se necesita el nombre del usuario. MAILTO en la primera línea es opcional.
EJEMPLO PARA TRABAJO EN /etc/cron.d/job
#login as root
#create job with preferred editor (e.g. vim)
MAILTO=root
* * * * * root touch /tmp/file
Esa es toda la sección sobre crontab en /etc , por lo que supongo que la inclusión del usuario bajo cuyo nombre se ejecuta el trabajo es de hecho único diferencia.
Nuevamente desde la misma página man:
Se admiten estos "apodos" de especificación de tiempo especiales, que reemplazan los 5 campos iniciales de hora y fecha, y tienen el prefijo del carácter '@':
@reboot :Ejecutar una vez después de reiniciar.
Por lo tanto, su inferencia de que la forma correcta de usar @reboot es
@reboot user_name command
es correcto .
Si lo está ejecutando de forma interactiva como se muestra a continuación, no especifique el usuario:
crontab -e
@reboot /root/mycommand
Si lo coloca como un archivo en /etc/cron.d, p. /etc/cron.d/mycronfile, debe poner el usuario:
@reboot root /root/mycommand