I want to execute a script once my computer boots up with cron. But it doesn't work.
My OS is Ubuntu MATE 16.04 LTS.
My crontab

My script

My script's absolute path

Once my Odroid boots up, the keyboard is still in qwerty.
What am I doing wrong ?
EDIT:
I tried @reboot echo "hi" > /home/valery/reboot.txt 2>&1
It works so the issue is not in the @reboot job.
EDIT: SOLUTION
I run my script from System > Preference > Personal > Startup Applications
It's working fine.
The setxkbmap command depends on the $DISPLAY environment variable to specify the X display it will affect.
On my system, if I run it without setting $DISPLAY, I get:
$ setxkbmap fr
Cannot open display "default display"
Crontab does not set $DISPLAY for the jobs it runs. In fact it provides only a minimal set of environment variables (on my system, just $HOME, $LOGNAME, $PATH, $LANG, $SHELL, and $PWD).
Anything a command prints to stdout or stderr will normally be e-mailed to the owner of the crontab. You're likely to have an e-mail message on your system containing an error message similar to the above.
It's likely that X Windows isn't even running yet when crontab executes the @reboot job. You'll have to find another way to run that command automatically, or just run it manually. (Or there could be another way to do this that I haven't thought of.)
Why not use systemd/upstart job for this?
PS:
Try this example. If it wouldn't work then try to find a bug
Replace /home/valery/ with a path to your home folder:
$ crontab -l
@reboot echo "hi" > /home/valery/reboot.txt 2>&1
I then rebooted the system.
$ sudo reboot
After the reboot.
$ cat reboot.txt
hi
Someone was attempting the very same thing and getting frustrated that it didn't work. It's titled: Thread: Cron - @reboot jobs not working.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With