Introduction to acpid
        
        
          The acpid (Advanced Configuration
          and Power Interface event daemon) is a completely flexible, totally
          extensible daemon for delivering ACPI events. It listens on netlink
          interface and when an event occurs, executes programs to handle the
          event. The programs it executes are configured through a set of
          configuration files, which can be dropped into place by packages or
          by the user.
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Some other packages may handle some ACPI events as well and they
            may conflict with this package. For example, Systemd-258.1 (read the documentation
            for Handle*= in logind.conf(5)
            for details) and UPower-1.90.10 (used by many desktop
            environments such as GNOME, KDE, and XFCE for handling ACPI
            events). If you've installed such a package and it's enough for
            your use case, this package is probably not needed. If you really
            need this package, you must be careful configuring it and the
            other packages handling ACPI events to avoid conflicts. Notably,
            Systemd-258.1 handles some ACPI events
            by default, so the handling of these events by Systemd-258.1 should be disabled first
            if handling these events with acpid (again, read logind.conf(5)
            for details).
          
         
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Development versions of BLFS may not build or run some packages
            properly if LFS or dependencies have been updated since the most
            recent stable versions of the books.
          
         
        
          Package Information
        
        
       
      
        
          Installation of acpid
        
        
          Install acpid by running the
          following commands:
        
        ./configure --prefix=/usr \
            --docdir=/usr/share/doc/acpid-2.0.34 &&
make
        
          This package does not come with a test suite.
        
        
          Now, as the root user:
        
        make install                         &&
install -v -m755 -d /etc/acpi/events &&
cp -r samples /usr/share/doc/acpid-2.0.34
       
      
        
          Configuring acpid
        
        
          acpid is configured by user
          defined events. Place event files under /etc/acpi/events directory. If an event occurs,
          acpid recurses
          through the event files in order to see if the regex defined after
          "event" matches. If they do, action is executed.
        
        
          The following brief example will suspend the system when the laptop
          lid is closed. The example also disables the default handling of
          the lid close event by Systemd-258.1 when
          the system is on battery and not connected to any external monitor,
          in order to avoid a conflict:
        
        cat > /etc/acpi/events/lid << "EOF"
event=button/lid
action=/etc/acpi/lid.sh
EOF
cat > /etc/acpi/lid.sh << "EOF"
#!/bin/sh
/bin/grep -q open /proc/acpi/button/lid/LID/state && exit 0
/usr/bin/systemctl suspend
EOF
chmod +x /etc/acpi/lid.sh
mkdir -pv /etc/systemd/logind.conf.d
echo HandleLidSwitch=ignore > /etc/systemd/logind.conf.d/acpi.conf
        
          Unfortunately, not every computer labels ACPI events in the same
          way (for example, the lid may be recognized as LID0 instead of LID). To determine how your buttons are
          recognized, use the acpi_listen tool. Also, look in
          the samples directory under
          /usr/share/doc/acpid-2.0.34 for more
          examples.
        
        
          
             Systemd Socket
          
          
            To start the acpid
            daemon at boot, install the systemd unit from the blfs-systemd-units-20241211 package by
            running the following command as the root user:
          
          make install-acpid
          
            ![[Note]](../images/note.png) 
            
              Note
            
            
              This package uses socket based activation and will be started
              when something needs it. No standalone unit file is provided
              for this package.