Как я могу узнать, какой сервис запустил процесс, таким образом, я могу отключить тот сервис?

Как Вы связываете процесс со связанным сервисом и затем отключаете это постоянно?

Я знаю

ps aux | less 

даст мне имя процесса и порт, но я хочу получить связанный сервис (и даже расположение файла) так, чтобы я мог отключить его при начальной загрузке при необходимости и узнать, где файлы и должен ли я удалить что-то.

5
задан 4 January 2017 в 06:54

1 ответ

На Ubuntu 16.04 и более новый (использование systemd как init), можно использовать systemctl status <PID> (от этого Unix & сообщение Linux) :

Для сервисных процессов:

$ 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

Для других вещей, это, вероятно, будет в объеме сеанса пользователя:

$ 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

Другой ответ в этом U& L сообщение имеет более простую команду:

ps -o unit -p <PID>

Сравните:

$ ps -o pid,unit -p $(pgrep chrome -n) 561 
  PID UNIT
  320 session-c2.scope
  561 sshd.service
8
ответ дан 23 November 2019 в 08:59

Другие вопросы по тегам:

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