Как перезапустить, например, мой 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
хотя чтение помогает.