Comment lier un processus à un service associé, puis le désactiver de manière permanente?
Je connais
ps aux | less
me donnera le nom du processus et le port mais je veux obtenir le service associé (et même l’emplacement du fichier) afin que je puisse le désactiver au démarrage si nécessaire et savoir où sont les fichiers et si je dois désinstaller quelque chose.
Sur Ubuntu 16.04 et les versions plus récentes (en utilisant systemd
comme init), vous pouvez utiliser systemctl status <PID>
à partir de ce post Unix & Linux) :
Pour les processus de service:
$ 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
Pour d’autres choses, ce sera probablement dans une portée de session utilisateur:
$ 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
Une autre réponse dans cet article d'U & L a une commande plus simple:
ps -o unit -p <PID>
Comparer:
$ ps -o pid,unit -p $(pgrep chrome -n) 561
PID UNIT
320 session-c2.scope
561 sshd.service