Назад | Перейти на главную страницу

Как запустить / остановить / перезапустить службы launchd из командной строки?

Как перезапустить, например, мой httpd или afpd, запустив любую Mac OS X> = 10.5 (Leopard-), без необходимости использовать графический интерфейс и перейти в Системные настройки -> Совместное использование и снятие отметки / отметки "Общий доступ в Интернет"?

Я ищу канонический эквивалент Debian invoke-rc.d apache2 restart.

РЕДАКТИРОВАТЬ: вопрос о запустил контролируемые сервисы в целом, а не конкретно Apache (что было просто примером).

Привет, launchctl (8) - ваш друг. Просто имейте в виду, что некоторые службы (например, sshd) отключены в файле конфигурации, поэтому вам нужно будет использовать -w переключайтесь при их загрузке. Вот пример sshd:

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

Вы можете остановить службу, используя unload подкоманда.

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

Чтобы перечислить службы, как вы уже догадались, используйте подкоманду list;)

веселиться

Чтобы перезапустить службу, вы можете использовать launchctl kickstart команда вместе с -k вариант. Например, чтобы перезапустить apache, вы можете использовать

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

Эта информация взята из 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.
          [...]

Вы могли бы просто сделать

sudo launchctl stop com.openssh.sshd

Если вы не знаете полное название службы, вы можете сделать

sudo launchctl list

Если вы по-прежнему не можете найти ожидаемую службу, попробуйте запустить ее без корневого идентификатора:

launchctl list

И вам не нужно выгружать и загружать сервис.

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

Ты ищешь 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.

На всякий случай, если вы ищете launchctl reload, вы можете определить функцию оболочки в своем ~/.bashrc/.zshrc как я:

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
}

Выполнение команды выглядит так -> lctl reload <your-plist-name>.plist

sudo apachectl restart

Работает с другими ОС, а также является частью Apache.

Для этого есть небольшое и полезное приложение под названием Lingon. Бесплатная версия Lingon уже доступна иногда перезапуск службы может быть сложной задачей.

syslog -w

хотя чтение помогает.