I am running Debian 10 on a virtual machine which acts as a file server for our company. We recently installed netatalk on it (version 3.1.12 as currently available in Debian repo). Our users are very happy with the performance they now receive via afp vs previous smb shares (especially when over VPN connections).
We would now like to get some status information of who is connected and what files are open, similar to smbstatus. But when I run afpstats, I get the following error message:
# afpstats
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/dbus/bus.py", line 175, in activate_name_owner
return self.get_name_owner(bus_name)
File "/usr/lib/python3/dist-packages/dbus/bus.py", line 361, in get_name_owner
's', (bus_name,), **keywords)
File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.netatalk.AFPStats': no such name
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/afpstats", line 16, in main
"/org/netatalk/AFPStats")
File "/usr/lib/python3/dist-packages/dbus/bus.py", line 241, in get_object
follow_name_owner_changes=follow_name_owner_changes)
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 248, in __init__
self._named_service = conn.activate_name_owner(bus_name)
File "/usr/lib/python3/dist-packages/dbus/bus.py", line 180, in activate_name_owner
self.start_service_by_name(bus_name)
File "/usr/lib/python3/dist-packages/dbus/bus.py", line 278, in start_service_by_name
'su', (bus_name, flags)))
File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.netatalk.AFPStats was not provided by any .service files
This was run a root. I tried this on a separate newly install VM with Debian 10 as well, and I get the same error.
Note: Any user can run afpstats.
I also saw this exact error when I hadn't configured dbus correctly. The first hurdle was that on Debian, dbus sysconf lives in /etc while netatalk sysconf is /usr/local/etc by default. Use --with-dbus-sysconf-dir=/etc with configure to make sure netatalk install puts the requisite dbus config files int he right place.
The second hurdle is to make sure afpstats is enabled in the first place. Add "afpstats = yes" to [Global] in afp.conf.
On Debian you may need to install the python3-dbus package as well.
Quick update: I had not seen this the first time, and now I feel like a fool.
I added
afpstats = yesto the afp.conf file and restarted the service.afpstatsgives no more error messages.Sorry for wasting your time.