Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running Script at boot using Cron

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 enter image description here

My script
enter image description here

My script's absolute path enter image description here

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.

like image 877
Johnrednex Avatar asked Oct 22 '25 14:10

Johnrednex


2 Answers

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

like image 69
Keith Thompson Avatar answered Oct 25 '25 11:10

Keith Thompson


Why not use systemd/upstart job for this?

PS:

Example

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

Bugs

  1. cron: @reboot jobs are not run.
  2. The bug in Ubuntu would seem to be confirmed here in this SO Q&A titled: @reboot cronjob not executing.

Someone was attempting the very same thing and getting frustrated that it didn't work. It's titled: Thread: Cron - @reboot jobs not working.

like image 23
Valeriy Solovyov Avatar answered Oct 25 '25 10:10

Valeriy Solovyov