Como posso descobrir qual serviço iniciou um processo para que eu possa desativar esse serviço?

3

Como você vincula um processo a um serviço associado e depois o desativa permanentemente?

Eu sei

ps aux | less 

me dará o nome do processo e porta, mas eu quero obter o serviço associado (e até mesmo a localização do arquivo) para que eu possa desativá-lo na inicialização, se necessário e descobrir onde estão os arquivos e se eu preciso desinstalar alguma coisa.

    
por user637251 04.01.2017 / 14:37

1 resposta

5

No Ubuntu 16.04 e mais recente (usando systemd como init), você pode usar systemctl status <PID> (deste Unix & amp; ; Postagem no Linux) :

Para processos de serviço:

$ systemctl status 561
● sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-01-04 15:38:01 JST; 7h ago
 Main PID: 561 (sshd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/sshd.service
           └─561 /usr/bin/sshd -D

Para outras coisas, provavelmente estará em um escopo de sessão do usuário:

$ systemctl status $(pgrep chrome -n)
● session-c2.scope - Session c2 of user muru
   Loaded: loaded (/run/systemd/transient/session-c2.scope; transient; vendor preset: disabled)
Transient: yes
   Active: active (running) since Wed 2017-01-04 15:46:30 JST; 7h ago
    Tasks: 422
   CGroup: /user.slice/user-1000.slice/session-c2.scope

Outra resposta nesse post de U & amp; L tem um comando mais simples:

ps -o unit -p <PID>

Compare:

$ ps -o pid,unit -p $(pgrep chrome -n) 561 
  PID UNIT
  320 session-c2.scope
  561 sshd.service
    
por muru 04.01.2017 / 15:12