Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    [SOLVED] dhcpd.conf: execute on commit -> exit status 6

    Scheduled Pinned Locked Moved DHCP and DNS
    2 Posts 1 Posters 2.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Ting
      last edited by

      After updating to 2.1 my little nice modification of services.inc vanished (/etc/rc.create_full_backup obviously does not backup everything) which allowed for waking up my NAS every time a computer fetches its IP from the dhcpd. Besides copying the relevant files to the chroot environment for dhcpd my modification also added the following line to dhcpd.conf:

      on commit { execute ("/usr/local/bin/wol", "-i", "192.168.1.255", "1c:c1:de:19:19:26"); }

      This is what is printed in /var/log/dhcpd.log when a computer fetches its IP address:

      Dec 21 20:46:46 pfsense dhcpd: DHCPDISCOVER from 18:8e:d5:d2:27:07 via vr0
      Dec 21 20:46:46 pfsense dhcpd: DHCPOFFER on 192.168.1.14 to 18:8e:d5:d2:27:07 via vr0
      Dec 21 20:46:46 pfsense dhcpd: execute_statement argv[0] = /usr/local/sbin/wol
      Dec 21 20:46:46 pfsense dhcpd: execute_statement argv[1] = -i
      Dec 21 20:46:46 pfsense dhcpd: execute_statement argv[2] = 192.168.1.255
      Dec 21 20:46:46 pfsense dhcpd: execute_statement argv[3] = 1c:c1:de:19:19:26
      Dec 21 20:46:46 pfsense dhcpd: execute: /usr/local/sbin/wol exit status 6

      After looking inside the wol sources I found that wol will never terminate with exit(6). Looks like the status is set by the fork() within dhcpd but I'm not able to figure out why. Changing file access rights and ownerships changes the exit status but never fixed the problem.

      ./lib:
      total 1462
      drwxr-xr-x  2 dhcpd  _dhcp      512 Dec 22 17:31 .
      drwxr-xr-x  9 root  wheel      512 Dec 22 17:30 ..
      -r–r--r--  1 root  _dhcp  1095964 Dec 21 20:02 libc.so.7

      ./usr/local/bin:
      total 24
      drwxr-xr-x  2 dhcpd  _dhcp    512 Dec 22 20:04 .
      drwxr-xr-x  5 dhcpd  _dhcp    512 Dec 22 20:04 ..
      -r-xr-xr-x  1 dhcpd  _dhcp  19920 Dec 21 20:02 wol

      ./usr/local/lib:
      total 1100
      drwxr-xr-x  2 dhcpd  _dhcp      512 Dec 21 20:02 .
      drwxr-xr-x  5 dhcpd  _dhcp      512 Dec 22 20:04 ..
      -r--r--r--  1 root  _dhcp  1060645 Dec 21 20:02 libiconv.so.3
      -r--r--r--  1 root  _dhcp    40747 Dec 21 20:02 libintl.so.9

      The lib* files are those which ldd lists as being necessary to run the wol command. The places are identical to the ones where they are placed normally but with respect to the chroot environment.

      Any idea about what I missed to do?

      1 Reply Last reply Reply Quote 0
      • T
        Ting
        last edited by

        Solved it by starting dhcpd with "-d". This showed an additional missing lib named "ld-elf.so.1". After copying this file also to the chroot-environment, everything was fine.

        1 Reply Last reply Reply Quote 0
        • First post
          Last post
        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.