O trabalho launchd não está na lista, mas ainda está em execução


0

Eu tenho um trabalho launchd que está sendo executado a cada dois minutos, mas não está no sudo launchctl list.

Eu estava mudando o arquivo plist, tanto o nome do arquivo quanto a tecla Label. Não o descarreguei antes, mas carreguei o arquivo recém-nomeado. Talvez seja isso que causou isso, mas eu ainda esperava na lista.

Mas nunca está na sudo launchctl listlista. Eu verifiquei croncomo uma boa medida também.

Eu verifiquei os outros usuários. Eu vejo o script que o trabalho launchd executa a cada dois minutos quando o faço ps aux. Existe uma maneira que eu possa usar ps auxpara ver qual processo de inicialização o gerou?

O que mais posso fazer para impedir isso? Reiniciar o servidor deve ser o último recurso, assim como reiniciar o launchd, mas se essa for a única opção, será a única opção.

Também existe essa pergunta, mas ninguém a respondeu: https://apple.stackexchange.com/questions/240550/weird-launchd-behaviour-process-still-running-after-deleting-launchd-file-and-r

Respostas:


1

Existe uma maneira que eu possa usar ps auxpara ver qual processo de inicialização o gerou?

Se você usar ps -ef, as 3 primeiras entradas de cada linha informarão o UID, o PID e o PID pai de um processo. Aqui está um exemplo:

$  ps -ef|head -2
  UID   PID  PPID   C STIME   TTY           TIME CMD
    0     1     0   0 30May16 ??        25:05.63 /sbin/launchd

Entre esses três, você poderá descobrir a fonte do processo que está procurando. Aqui está um exemplo bastante óbvio para o qual estou olhando softwareupdated(o daemon softwareupdate):

Primeiro procuro o processo e depois confirmo usando ps -ef <some_PID>. Adquiri o hábito de terminar pesquisas com grep -v greppara excluir grep dos meus resultados

$  ps -ef|grep softwareupdated|grep -v grep
  200  3711     1   0 30May16 ??         6:45.49 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated
$  ps -ef 3711
  UID   PID  PPID   C STIME   TTY           TIME CMD
  200  3711     1   0 30May16 ??         6:45.49 /System/Library/CoreServices/Software Update.app/Contents/Resources/softwareupdated

O PID pai é numerado, 1então eu verifico que:

$  ps -ef 1
  UID   PID  PPID   C STIME   TTY           TIME CMD
    0     1     0   0 30May16 ??        25:08.24 /sbin/launchd

legal! Funcionou como um encanto. E acabou que estava sob outro usuário - eu tinha assumido que sudo launchctl listmostraria tudo, mas é por usuário. Viva e aprenda. Obrigado pela ajuda!
dgig
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.