Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

You can determine whether your launch daemon is presently operational on macOS using programming by checking if the daemon process is running. One way to do this is to use the ps command in terminal to list all running processes on the system and then search for your daemon process by name. Here's an example code snippet in Swift:

import Foundation

func isDaemonRunning() -> Bool {
    let task = Process()
    task.launchPath = "/bin/ps"
    task.arguments = ["axo", "comm"]

    let pipe = Pipe()
    task.standardOutput = pipe

    task.launch()
    task.waitUntilExit()

    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue)!

    return output.contains("your-daemon-process-name")
}

This code creates a new Process instance and sets its launchPath to /bin/ps which is the path of the ps command. The arguments array specifies the arguments to pass to the command which in this case are axo and comm, which tell ps to list all processes (a), show only the command name (comm), and output the data in a specific format (x).

The code then creates a pipe for capturing the standard output of the process and sets it to the task.standardOutput property. It launches the process, waits for it to complete, and reads the output from the pipe as a string.

Finally, it returns a boolean value indicating whether the output string contains the name of your daemon process. If it does, then the daemon is currently running, otherwise it is not.