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


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

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

EDIT: вопрос о услуги, управляемые запуском в целом, а не Apache (что было просто примером).


119
2017-10-26 12:21


Источник


Исходя из ответов до сих пор, правильно предположить, что нет единственной команды launchctl для перезапуск сервис? - JS.


Ответы:


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

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

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

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

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

повеселись, N


138
2017-10-26 14:00



К тому же, launchctl list не жалуется, но не показывает все, sudo launchctl list для этого необходимо. - conny
Дело не в том, что он не показывает все, он показывает совершенно другой список. Когда вы запускаете launchctl как обычный пользователь, он показывает / управляет LaunchAgents, запущенным в вашей пользовательской сессии; запускается как root, он отображает / управляет общесистемными LaunchDaemons. - Gordon Davisson
Я вижу «com.openssh.sshd» в этом списке, поэтому я предполагаю, что config «загружен». Теперь, как, например, sudo launchctl start com.openssh.sshd не делает что-нибудь, а не evan с ошибкой с сообщением об ошибке, тем более, что на самом деле ничего запускать? - conny
@conny В общем случае это может ввести в заблуждение, однако, когда вы пишете службу, и вы подозреваете, например, что что-то неприятное происходит при запуске, вы можете загрузить его один раз и использовать «stop» / «start» для отладки проблемы , - nayden
Почему не упоминается launchctl start <label> или launchctl stop <label>? Если он уже запущен с помощью launchctctl, нет необходимости перезагружать файл plist (если он не изменился также?). Досадно, что нет restart или reload команда. Кто-нибудь знает способ создания одной команды (например) mongod забрать конфигурационное изменение файла? Я просто не доволен ... stop ... && ... start ..., - Brian


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


6
2017-10-26 14:20





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

2
2017-10-26 13:27



Но чтение man-страницы не говорит мне, что эквивалент invoke-rc.d my-little-daemon restartis ... Он ссылается на «job_label», но не говорит мне, как перечислить «job_label». - conny
Я думаю, что ответ Найдена получил это. - eric.s


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

sudo launchctl stop com.openssh.sshd

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

sudo launchctl list

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

launchctl list

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


2
2017-12-26 13:05



Я пробовал это, и теперь я не могу использовать ssh от моего Mac. Перезагрузка не исправляется. Замена stop с start тоже не исправляет. - P i
Я попробовал это, и я все еще могу ssh на свой Mac! - Michael
@ dmitriy-apollonin Это не работает, вы должны использовать sudo unload /System/Library/LaunchDaemons/ssh.plist вместо. - SebMa


sudo apachectl restart

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


1
2017-10-26 12:27



Несмотря на то, что в теме не упоминается apache в частности, я должен был ожидать эту интерпретацию ... Извините, но это было не то, что я искал :) - conny
Хорошо, я поймал часть httpd, для которой использование apachectl - более простой вариант :) - Sven♦


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

syslog -w

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


0
2018-03-08 13:34





я не знаю, это то, что вы ищете, но вы можете попробовать top простая команда, которую я нахожу довольно полезной.


0
2018-04-18 19:11



но это только показывает запущенные procceses, и я не думаю, что вы можете запускать / останавливать / перезапускать любые - user411190
Это позволит вам остановить процессы, но начинать не так много. - chicks