Linux acpid - Advanced Configuration and Power Interface events Daemon (2024)

acpid is a daemon process, which starts at system boot and runs in the background, to notify programs for ACPI events. It opens an ACPI events file (/proc/acpi/event by default) and attempts to read lines which represent ACPI events. If the events file does not exist, acpid will attempt to connect to the Linux kernel via the input and netlink layers (Information is transferred between kernel and user-space processes using Netlink. It comprises an internal kernel API for kernel modules and a common sockets-based interface for user space programmes.). When an ACPI event is received from one of these sources, acpid will examine a list of rules, and execute the rules that match the event. acpid will ignore all incoming ACPI events if a lock file exists (/var/lock/acpid by default).

acpid looks for rules defined in the configuration directory and files (/etc/acpi/events by default). and parse all regular files with names that consist entirely of upper and lower case letters, digits, underscores, and hyphens that do not begin with a period (.) or end with a tilde (~).

Each file must define two things: an event and an action. Any blank lines, or lines where the first character is a hash ('#') are ignored. Extraneous lines are flagged as warnings. Each line has three tokens: the key, a literal equal sign, and the value. The key can be up to 63 characters, and is case-insensitive (but whitespace matters). The value can be up to 511 characters, and is case and whitespace sensitive.

In addition to rule files, acpid also accepts connections on a unix domain socket (/var/run/acpid.socket by default). Once an application is connected, acpid will send the text of all ACPI events to the client. The client has the responsibility of filtering for messages about which it cares. acpid will not close the client socket except in the case of a SIGHUP (with 1 signal number signal is used to indicate that a network or phone connection has been lost, possibly resulting in the user's terminal being disconnected.). acpid will log all of its activities, as well as the standard output (stdout) and standard error (stderr) of any actions, to syslog.

acpid command syntax:

acpid [options]

Linux acpid - Advanced Configuration and Power Interface events Daemon (1)

acpid command options:

-c, --confdir directorychanges the directory in which acpid looks for rule configuration files. Default is /etc/acpi/events.
-C, --clientmax numberchanges the maximum number of non-root socket connections which can be made to the acpid socket. Default is 256.
-d, --debugincreases the acpid debug level by one.
-e, --eventfile filenamechanges the event file from which acpid reads events. Default is /proc/acpi/event.
-n, --netlinkforces acpid to use the Linux kernel input layer and netlink interface for ACPI events.
-f, --foregroundkeeps acpid in the foreground by not forking at startup, and makes it log to stderr (standard error) instead of syslog (system logs).
-l, --logeventstells acpid to log information about all events and actions.
-L, --lockfile filenamechanges the lock file used to stop event processing. Default is /var/lock/acpid.
-g, --socketgroup groupnamechanges the group ownership of the unix domain socket to which acpid publishes events.
-m, --socketmode modechanges the permissions of the unix domain socket to which acpid publishes events. Default is 0666.
-s, --socketfile filenamechanges the name of the unix domain socket which acpid opens. Default is /var/run/acpid.socket.
-S, --nosockettells acpid not to open a unix domain socket. This overrides the -s option, and negates all other socket options.
-p, --pidfile filenametells acpid to use the specified file as its pidfile. If the file exists, it will be removed and over-written. Default is /var/run/acpid.pid.
-r, --dropaction actiondefines the pseudo-action which tells acpid to abort all processing of an event, including client notifications. Default is <drop>.
-t, --tpmutefixenables special handling of the mute button for certain Lenovo ThinkPad models with mute LEDs that get out of sync with the mute state when the mute button is held down.
-h, --helpdisplay this help and exit.
-v, --versionoutput version information and exit.

Start ACPI daemon:

Before jumping to the examples, we should check if the status of acpid service as follows:

  • Using systemctl command (operates on the files in /etc/init.d):
    • Start the service with this command (requires root privileges): systemctl start acpid
    • Now you can check the status with this command: systemctl status acpid
  • Using service command (operates on the files in /lib/systemd) :
    • Start the service with this command (requires root privileges):service acpid start
    • Now you can check the status with this command: service acpid status
? acpid.service - ACPI event daemon Loaded: loaded (/lib/systemd/system/acpid.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2022-09-06 06:22:06 EDT; 13min agoTriggeredBy: ? acpid.socket ? acpid.path Docs: man:acpid(8) Main PID: 645367 (acpid) Tasks: 1 (limit: 2840) Memory: 220.0K CPU: 58ms CGroup: /system.slice/acpid.service ??645367 /usr/sbin/acpidSep 06 06:22:06 kali systemd[1]: Started ACPI event daemon.Sep 06 06:22:06 kali acpid[645367]: starting up with netlink and the input layerSep 06 06:22:06 kali acpid[645367]: 1 rule loadedSep 06 06:22:06 kali acpid[645367]: waiting for events: event logging is off

acpid command examples

1. Alter the location of the directory where acpid searches for rule configuration files. (It's /etc/acpi/events by default.)

$ acpid -c directory/path$ acpid –confdir=directory/path


2. Adjust the number of non-root socket connections that the acpid socket can accept. (256 is the default.)

$ acpid -C number$ acpid –clientmax=number


3. Increase acpid debug level by one.

$ acpid -d$ acpid –debug


4. Alter the event file that acpid reads events from. It is /proc/acpi/event by default.

$ acpid -e file/path$ acpid –eventfile=file/path


5. Compel acpid to utilize the netlink interface and input layer of the Linux kernel for ACPI events.

$ acpid -n$ acpid –netlink


6. Keep acpid in the foreground by not forking at startup, and makes it log to standard error instead of system logs.

$ acpid -f$ acpid –foreground


7. Instruct the acpid command to record details of all Events and Actions.

$ acpid -l$ acpid –logevents

Linux acpid - Advanced Configuration and Power Interface events Daemon (2)
8. The lock file that is used to halt event processing is modified. (/var/lock/acpid is the default.)

$ acpid -L file/path$ acpid –lockfile=file/path


9. Change acpid's domain socket for publishing events' group ownership.

$ acpid -g groupname$ acpid –socketgroup=groupname


10. Alter the unix domain socket's permissions so that acpid can publish events to it. (Standard is 0666.)

$ acpid -m mode$ acpid –socketmode=mode


11. Change the name of the UNIX domain socket that acpid open. (/var/run/acpid.socket is the default.)

$ acpid -s file/path$ acpid –socketfile filename


12. Prohibit opening of a UNIX domain socket by acpid . This cancels out all other socket options and supersedes the -s option.

$ acpid -S$ acpid –nosocket


13. Specify the file that acpid should use as its pidfile. The file will be deleted and overwritten if it already exists. (/var/run/acpid.pid is the default.)

$ acpid -p file/path$ acpid –pidfile=file/path


14. Define the pseudo-action that instructs acpid to stop handling any further events or client notifications. (<drop> is the default.)

$ acpid -r action$ acpid –dropaction=action


15. Gives some Lenovo ThinkPad models with mute LEDs that become out of sync with the mute state when the mute button is depressed, and unique handling of the mute button.

$ acpid -t$ acpid –tpmutefix

Conclusion

Linux acpid command is an important tool for managing power and system events on your Linux system. It is essential for proper power management and handling system events such as shutting down, suspending, and restarting the system. By using the commands discussed above, you can easily start, stop, and restart acpid on your Linux system.

Linux acpid - Advanced Configuration and Power Interface events Daemon (2024)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Jamar Nader

Last Updated:

Views: 5891

Rating: 4.4 / 5 (75 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Jamar Nader

Birthday: 1995-02-28

Address: Apt. 536 6162 Reichel Greens, Port Zackaryside, CT 22682-9804

Phone: +9958384818317

Job: IT Representative

Hobby: Scrapbooking, Hiking, Hunting, Kite flying, Blacksmithing, Video gaming, Foraging

Introduction: My name is Jamar Nader, I am a fine, shiny, colorful, bright, nice, perfect, curious person who loves writing and wants to share my knowledge and understanding with you.