How to start/stop/restart launchd services from the command line?

Solution 1:

Hi launchctl(8) is your friend. Just keep in mind that some of the services (sshd for example) are disabled in the configuration file so you will need to use the -w switch when loading them. Here is a sshd example:

$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 

You can stop the service using the unload subcommand.

$ sudo launchctl unload  /System/Library/LaunchDaemons/ssh.plist 

To list the services, as you might have already guessed use the 'list' subcommand ;)

have fun, n

Solution 2:

To restart a service, you can use the launchctl kickstart command, together with the -k option. For example, to restart apache, you can use

sudo launchctl kickstart -k system/org.apache.httpd

This information is from the launchctl manual page:

 kickstart [-kp] service-target
          Instructs launchd to run the specified service immediately, regardless of its
          configured launch conditions.

          -k       If the service is already running, kill the running instance before
                   restarting the service.
          [...]

Solution 3:

You could simply do

sudo launchctl stop com.openssh.sshd

If you don't known the full service name, you can do

sudo launchctl list

If you still don't find the service you expected, try to run without the root identity:

launchctl list

And you don't need to unload and load service.


Solution 4:

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist


Solution 5:

You are looking for launchctl.

SYNOPSIS
 launchctl [subcommand [arguments ...]]

DESCRIPTION
 launchctl interfaces with launchd to load, unload daemons/agents and gen-
 erally control launchd.  launchctl supports taking subcommands on the
 command line, interactively or even redirected from standard input.
 These commands can be stored in $HOME/.launchd.conf or /etc/launchd.conf
 to be read at the time launchd starts.