xsanctl: unable to connect to xsand & launchd
08 Dec 2021
We recently had a Mac that wouldn’t mount the Xsan volume when rebooting. We would receive the error xsanctl: unable to connect to xsand: No such file or directory
when running xsanctl mount VolumeName
. After confirming that the fibre HBA driver was loaded and the LUNs were available, we thought to check the issue that the error message actually described.
xsand
is supposed to be started by launchd
when the Mac boots up. We can check what launchd knows is running with sudo launchctl list com.apple.xsan
(you can also check with pgrep xsand
, but we are going to focus on launchctl
here). The value com.apple.xsan
comes from the label of the launchd item for xsand
(/System/Library/LaunchDaemons/com.apple.xsan.plist). This command will print out details of the process if it is running. Otherwise we get Could not find service "com.apple.xsan" in domain for system
. We can see all loaded launchd items (or just user launchd items) by leaving off the launchd label ([sudo] launchctl list
). To have launchd
try and start xsand
, run sudo launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.xsan.plist
. Now if we re-run the launchctl list, we should see output like
$ sudo launchctl list com.apple.xsan
Password:
{
"LimitLoadToSessionType" = "System";
"Label" = "com.apple.xsan";
"OnDemand" = false;
"LastExitStatus" = 0;
"PID" = 4389;
"Program" = "/System/Library/Filesystems/acfs.fs/Contents/bin/xsand";
"ProgramArguments" = (
"xsand";
);
};
This tells us that xsand is running, the process ID is 4389, and the last exit status is 0. If you are troubleshooting other xsand issues the LastExitStatus may help. In our case the volume mounted and we now have another tool in our Xsan troubleshooting tool box.