xset in BASH script does not work under Cron

452 views Asked by At

To learn about BASH scripting, I set myself the objective to write a Cron script which shuts down a PC with Mint 20 when activity on the Ethernet interface dropped below a threshold over an 1 hour. I mainly (but not exclusively) use the PC as File/DLNA Server. The script works, but now I find that it also shuts down the PC the rare times I'm using the the front end. So I want my script to verify if the screen has been blanked (As per Power Management settings)

To test the principle I included this in my script:

screenon=$(/usr/bin/xset -q | grep 'Monitor is' | cut -d "s" -f 2)}

which when run in a terminal window gives (debug: set -x)

screenon= On

but when run from cron gives. (logger)

/usr/bin/xset: unable to open display ""

I have learned about similar problems, but cannot figure out how to solve this.

My script includes:PATH=$PATH:/usr/local/bin

and my PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Thanks in advance for any help.

0

There are 0 answers