web-dev-qa-db-fra.com

Comment démarrer / arrêter / redémarrer les services launchd à partir de la ligne de commande?

Comment redémarrer, disons par exemple mon httpd ou afpd, exécutant n'importe quel Mac OS X> = 10.5 (Leopard-), sans avoir à utiliser l'interface graphique et aller à Préférences Système -> Partage et décocher/cocher "Partage Web"?

Je cherche l'équivalent canonique du invoke-rc.d Apache2 restart De Debian.

EDIT: La question concerne services contrôlés par launchd en général, pas spécifiquement Apache (-qui était simplement un exemple).

154
conny

Salut launchctl (8) est votre ami. N'oubliez pas que certains services (sshd par exemple) sont désactivés dans le fichier de configuration, vous devrez donc utiliser le -w basculer lors du chargement. Voici un exemple sshd:

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

Vous pouvez arrêter le service à l'aide de la sous-commande unload.

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

Pour lister les services, comme vous l'avez peut-être déjà deviné, utilisez la sous-commande 'list';)

amuses-toi

169
nayden

Pour redémarrer un service, vous pouvez utiliser le launchctl kickstart, avec la commande -k option. Par exemple, pour redémarrer Apache, vous pouvez utiliser

Sudo launchctl kickstart -k system/org.Apache.httpd

Ces informations proviennent de la page de manuel launchctl:

 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.
          [...]
7
jochen

Sudo launchctl load -w /System/Library/LaunchDaemons/org.Apache.httpd.plist

7
user58316

Vous pourriez simplement faire

Sudo launchctl stop com.openssh.sshd

Si vous ne connaissez pas le nom du service complet, vous pouvez le faire

Sudo launchctl list

Si vous ne trouvez toujours pas le service attendu, essayez de l'exécuter sans l'identité racine:

launchctl list

Et vous n'avez pas besoin de décharger et de charger le service.

6
Dmitriy Apollonin

Vous recherchez 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.
3
eric.s

Juste au cas où vous recherchez launchctl reload, vous pouvez définir la fonction Shell dans votre ~/.bashrc/.zshrc comme je l'ai fait:

function lctl {
    COMMAND=$1
    PLIST_FILE=$2
    if [ "$COMMAND" = "reload" ] && [ -n "$PLIST_FILE" ]
      then
        echo "reloading ${PLIST_FILE}.."
        launchctl unload ${PLIST_FILE}
        launchctl load ${PLIST_FILE}
      else
        echo "either command not specified or plist file is not defined"
    fi
}

L'exécution de la commande ressemble à -> lctl reload <your-plist-name>.plist

2
Dzmitry Hubin
Sudo apachectl restart

Fonctionne avec d'autres systèmes d'exploitation et fait partie d'Apache.

0
Sven

Il existe une petite application utile pour ce Lingon nommé. l'édition gratuite de Lingon est ici parfois redémarrer un service peut être délicat.

syslog -w

la lecture aide cependant.

0
risyasin