GNU/Linux >> Tutoriels Linux >  >> Linux

Déterminez dans quel(s) groupe(s) se trouve un processus en cours d'exécution ?

La liste des groupes est donnée sous Groups en /proc/ /status; par exemple,

$ grep '^Groups' /proc/$$/status
Groups: 4 24 27 30 46 110 115 116 1000

Le groupe primaire est donné sous Gid :

$ grep '^Gid' /proc/$$/status
Gid:    1000    1000    1000    1000

ps est également capable d'afficher les groupes d'un processus, comme l'indiquent les autres réponses.


Pour l'identifiant de groupe effectif, l'identifiant de groupe réel et les identifiants de groupe supplémentaires (utilisés pour le contrôle d'accès) :

ps -o gid,rgid,supgid -p "$pid"

gid et rgid sont assez portables, supgid moins (les 3 seraient disponibles avec le ps de procps que l'on trouve généralement sur les systèmes basés sur Linux).

group , rgroup et supgrp peut être utilisé pour traduire les identifiants de groupe en noms de groupe, mais notez que pour les identifiants de groupe qui ont plusieurs noms de groupe correspondants, un seul d'entre eux sera affiché (comme pour ls -l contre ls -n ou tout ce qui traite des noms d'utilisateurs ou de groupes basés sur des identifiants).

Pour l'identifiant du groupe de processus (tel qu'utilisé pour le contrôle des tâches du terminal) :

ps -o pgid -p "$pid"

Pour le stocker dans une variable :

pgid=$(($(ps -o pgid= -p "$pid")))

Utilisation de ps :

$ ps -o group,supgrp $$
GROUP    SUPGRP
muru     adm,cdrom,sudo,dip,www-data,plugdev,lpadmin,mlocate,sambashare,lxd,libvirtd,docker,muru

À partir de man ps , les colonnes de sortie utilisées pour -o :

   egid        EGID      effective group ID number of the process as a
                         decimal integer.  (alias gid).

   egroup      EGROUP    effective group ID of the process.  This will be
                         the textual group ID, if it can be obtained and
                         the field width permits, or a decimal
                         representation otherwise.  (alias group).

   gid         GID       see egid.  (alias egid).

   group       GROUP     see egroup.  (alias egroup).

   supgid      SUPGID    group ids of supplementary groups, if any.  See
                         getgroups(2).

   supgrp      SUPGRP    group names of supplementary groups, if any.  See
                         getgroups(2).

Linux
  1. Comment déterminer quel processus crée un fichier ? ?

  2. Assurez-vous qu'un processus est toujours en cours d'exécution ?

  3. Changer l'environnement d'un processus en cours ?

  4. Vérifier le processus si le même est en cours d'exécution ?

  5. Linux - Comment identifier quelle distribution Linux est en cours d'exécution ??

Comment répertorier les processus en cours d'exécution sous Linux

Processus en cours d'exécution

Qu'est-ce qu'un processus ininterrompu ?

Comment démarrer un processus dans son propre groupe de processus ?

Déterminez quel invité s'exécute sur XEN :invité HVM ou PV

Détermination du processeur particulier sur lequel un processus s'exécute