Cannot launch service
I would like to run an executable as service on macOS.
The executable is a Node JS application packaged using pkg https://www.npmjs.com/package/pkg
I have copied it to a local folder under /opt/caligo/ninja/server and created a .plist file to launch it as service.
ls -lt
total 92584
-rwxr-xr-x 1 eriknorman wheel 47399568 Feb 13 13:15 caligo-ninja-server-0.6.1-darwin
If I run the application it starts without problems, it starts a socket listening on a port and outputs "hey" to console.
eriknorman@Eriks-Mac-mini server ./caligo-ninja-server-0.6.1-darwin
hey
I have created the plist file and saved it under /Library/LaunchDaemons/
eriknorman@Eriks-Mac-mini server % cd /Library/LaunchDaemons
eriknorman@Eriks-Mac-mini LaunchDaemons % ls
com.caligo.caligo-ninja.server.plist
eriknorman@Eriks-Mac-mini LaunchDaemons % cat com.caligo.caligo-ninja.server.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.caligo.caligo-ninja.server</string>
<key>Program</key>
<string>/opt/caligo/ninja/server/caligo-ninja-server-0.6.1-darwin</string>
<key>KeepAlive</key> <true/>
<key>RunAtLoad</key> <true/>
<key>Disabled</key> <false/>
<key>UserName</key> <string>root</string>
</dict>
</plist>
I have loaded it with the appropriate launchctl commands, but to no avail
eriknorman@Eriks-Mac-mini LaunchDaemons % sudo launchctl load /Library/LaunchDaemons/com.caligo.caligo-ninja.server.plist
eriknorman@Eriks-Mac-mini LaunchDaemons % sudo launchctl start com.caligo.caligo-ninja.server
eriknorman@Eriks-Mac-mini LaunchDaemons % sudo launchctl print system/com.caligo.caligo-ninja.server
system/com.caligo.caligo-ninja.server = {
active count = 0
path = /Library/LaunchDaemons/com.caligo.caligo-ninja.server.plist
state = spawn scheduled
program = /opt/caligo/ninja/server/caligo-ninja-server-0.6.1-darwin
default environment = {
PATH => /usr/bin:/bin:/usr/sbin:/sbin
}
environment = {
XPC_SERVICE_NAME => com.caligo.caligo-ninja.server
}
domain = system
minimum runtime = 10
exit timeout = 5
runs = 3
last exit code = 1
spawn type = daemon (3)
jetsam priority = 4
jetsam memory limit (active) = (unlimited)
jetsam memory limit (inactive) = (unlimited)
jetsamproperties category = daemon
submitted job. ignore execute allowed
jetsam thread limit = 32
cpumon = default
properties = keepalive | runatload
}
The executable also creates a local file when started, but nothing appears.
I have tried to check system logs and error logs, nothing so far.
What am I missing?
You can download the executable here:
https://s3.eu-west-1.amazonaws.com/caligo-ninja-deliverables/eeb8896c-0646-4151-a7aa-5d79bbd01253/caligo-ninja-server-0.6.1-darwin
Mac mini, macOS 12.2