Como posso parar um serviço launchd?

1

Eu tenho um serviço launchd com o rótulo 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";
    );
};

Eu quero parar este serviço! No entanto, o comando óbvio stop não funciona. Em vez disso, ele reinicia o serviço com um novo 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";
    );
};

Como eu realmente paro o serviço?

    
por jameshfisher 25.09.2017 / 12:35

1 resposta

2

Um trabalho interrompido será reiniciado imediatamente se for iniciado. Em vez disso, você deve descarregar o serviço:

launchctl unload homebrew.mxcl.postgresql

Para desativá-lo permanentemente, especifique também a opção -w :

launchctl unload -w homebrew.mxcl.postgresql

Para o Homebrew, também há serviços homebrew . Para instalá-lo:

brew tap homebrew/services

Você pode iniciar e interromper os serviços com mais facilidade:

brew services start postgresql
brew services stop postgresql
    
por 25.09.2017 / 12:43