Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

Acpid can't execute scripts

Writer Mia Lopez

I have an old laptop and I installed Ubuntu 20.04 LTS Server edition (no GUI, just CLI). It managed via SSH so its display is unnecessary. I would like to turn off the display when I close the lid, and turn on again if I open it.

I've successfully configured acpid to manage the display.

In /etc/acpi/events I created a file:

event=button/lid.*
action=/etc/acpi/lid.sh

The script:

#!/bin/sh
grep -q closed /proc/acpi/button/lid/LID/state
if [ $? = 0 ]
then # close action setterm --blank force
else # open action setterm --blank poke
fi

If I run this script manually, it works perfectly, however it seems that acpi can't run the script:

$ sudo journalctl -u acpid -f
...
Jul 04 20:03:01 server acpid[1179]: received input layer event "button/lid LID close"
Jul 04 20:03:01 server acpid[1179]: rule from /etc/acpi/events/lid matched
Jul 04 20:03:01 server acpid[1353]: executing action "/etc/acpi/lid.sh"
Jul 04 20:03:01 server acpid[1179]: action exited with status 1
Jul 04 20:03:01 server acpid[1179]: 1 total rule matched
Jul 04 20:03:01 server acpid[1179]: completed input layer event "button/lid LID close"
...

Error: action exited with status 1 (not 0)

If i know right, exit code 1 is a permission issue (operation not permitted). I don't know why is it "not permitted", because I don't need to use sudo to run this script.

1

1 Answer

So finally I figured out what was the problem.

As steeldriver mentioned, setterm needs to be run inside a terminal (in front of the laptop), and in my script it wasn't connected to a real terminal and setterm could change nothing.

According to this post, we need to redirect the output or input to/from the console.

So I modified my script:

#!/bin/sh
grep -q closed /proc/acpi/button/lid/LID/state
if [ $? = 0 ]
then # close action setterm -term linux --blank force </dev/tty1
else # open action setterm -term linux --blank poke </dev/tty1
fi

I tested this script and it's work like a charm ;)

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy