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.
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.)