Как я могу остановить запущенный сервис?

520
jameshfisher

У меня есть сервис запуска с меткой homebrew.mxcl.postgresql:

$ launchctl list homebrew.mxcl.postgresql { "LimitLoadToSessionType" = "Aqua"; "StandardErrorPath" = "/usr/local/var/log/postgres.log"; "Label" = "homebrew.mxcl.postgresql"; "TimeOut" = 30; "OnDemand" = false; "LastExitStatus" = 0; "PID" = 5436; "Program" = "/usr/local/opt/postgresql/bin/postgres"; "ProgramArguments" = ( "/usr/local/opt/postgresql/bin/postgres"; "-D"; "/usr/local/var/postgres"; ); }; 

Я хочу остановить эту услугу! Однако очевидная stopкоманда не работает. Вместо этого он перезапускает сервис с новым PID:

$ launchctl stop homebrew.mxcl.postgresql $ launchctl list homebrew.mxcl.postgresql { "LimitLoadToSessionType" = "Aqua"; "StandardErrorPath" = "/usr/local/var/log/postgres.log"; "Label" = "homebrew.mxcl.postgresql"; "TimeOut" = 30; "OnDemand" = false; "LastExitStatus" = 0; "PID" = 5819; "Program" = "/usr/local/opt/postgresql/bin/postgres"; "ProgramArguments" = ( "/usr/local/opt/postgresql/bin/postgres"; "-D"; "/usr/local/var/postgres"; ); }; 

Как мне на самом деле остановить службу?

1

1 ответ на вопрос

2
Daniel B

Остановленная работа будет немедленно перезапущена, если она должна быть запущена. Вместо этого вы должны выгрузить сервис:

launchctl unload homebrew.mxcl.postgresql 

Чтобы навсегда отключить его, также укажите -wпереключатель:

launchctl unload -w homebrew.mxcl.postgresql 

Для Homebrew есть также услуги homebrew . Чтобы установить его:

brew tap homebrew/services 

Тогда вам будет проще запускать и останавливать сервисы:

brew services start postgresql brew services stop postgresql 

Похожие вопросы