3

I want to add two power saving commands to /etc/rc.local file.

This to disable Bluetooth:

 rfkill block bluetooth

And this to reduce screen brightness:

echo 3024 > /sys/class/backlight/intel_backlight/brightness

Separately added to /etc/rc.local they work but not both of them together like this:

#/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

echo 3024 > /sys/class/backlight/intel_backlight/brightness

rfkill block bluetooth

exit 0

How do I add the two commands to get them properly executed at start-up?

Update

It turned out to be a timing issue. I fixed it by delaying the execution of the first command thus:

(sleep 5; echo 3021 > /sys/class/backlight/intel_backlight/brightness)&
10
  • 2
    This should definitely work. My suspicion is, that the first command terminates with an error, although I cannot figure out why. Since the Parameter -e is given in the very first line of the file, the shell script would terminate after the very first error without executing any more commands. Oct 29, 2012 at 15:25
  • Tried again as above and it seems to be the brightness command that's the problem. Bluetooth is consistently killed on start up but the brightness is strangely only sometimes reduced. Experimented with only the brightness command in the file with the result that, regardless of how I shut down, in less than 50% it works. Note that with both the commands in the file, as above, rfkill always works so the command doesn't terminate with an error, brightness just doesn't always take effect. Is there another place I could put 'echo 3024 > /sys/class/backlight/intel_backlight/brightness'?
    – user76766
    Oct 29, 2012 at 16:33
  • yes, you could put in into the crontab for root. Run sudo crontab -e and insert a line @REBOOT echo 3024 > /sys/class/backlight/intel_backlight/brightness. You have probably a timing problem in the form that the driver controlling display brightness is sometimes not yet loaded when the script comes up. You might or might not avoid this when using the crontab. The crontab can hold several lines, each user has its own crontab. Oct 29, 2012 at 16:41
  • Thanks, but when I tried that I got 'no crontab for root - using an empty one crontab: installing new crontab "/tmp/crontab.ytX5oW/crontab":22: bad time specifier errors in crontab file, can't install. Do you want to retry the same edit? (y/n)' - how do I save the changes properly?
    – user76766
    Oct 29, 2012 at 16:51
  • 1
    It's a dirty hack but why not do something like (sleep 5; echo 3021 > /sys/class/backlight/intel_backlight/brightness)&
    – Huckle
    Oct 31, 2012 at 19:20

1 Answer 1

3

It turned out to be a timing issue. The OP indicated fixing it by delaying the execution of the first command thus:

(sleep 5; echo 3021 > /sys/class/backlight/intel_backlight/brightness)&

(Huckle had suggested this in comments.)

You must log in to answer this question.