GNU/Linux >> Linux Esercitazione >  >> Linux

Determina in quali gruppi si trova un processo in esecuzione?

L'elenco dei gruppi è fornito sotto Groups in /proc/ /status; ad esempio,

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

Il gruppo principale è indicato sotto Gid :

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

ps è anche in grado di mostrare i gruppi di un processo, come indicano le altre risposte.


Per l'ID di gruppo effettivo, l'ID di gruppo reale e gli ID di gruppo supplementari (usati per il controllo dell'accesso):

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

gid e rgid sono abbastanza portatili, supgid meno (tutti e 3 sarebbero disponibili con ps da procps come si trova tipicamente sui sistemi basati su Linux).

group , rgroup e supgrp può essere utilizzato per tradurre gli ID di gruppo in nomi di gruppo, ma tieni presente che per gli ID di gruppo che hanno diversi nomi di gruppo corrispondenti, ne verrà mostrato solo uno (come per ls -l rispetto a ls -n o qualsiasi cosa che abbia a che fare con nomi di utenti o gruppi basati su ID).

Per l'id del gruppo di processi (utilizzato per il controllo del lavoro del terminale):

ps -o pgid -p "$pid"

Per memorizzarlo in una variabile:

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

Usando ps :

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

Da man ps , le colonne di output utilizzate per -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. Garantire che un processo sia sempre in esecuzione?

  2. Cambiare l'ambiente di un processo in esecuzione?

  3. Avviare un processo su un Tty diverso?

  4. Come determinare quale processo sta scrivendo su disco in Linux

  5. Cos'è un processo ininterrotto?

Come elencare i processi in esecuzione in Linux

Processi in esecuzione

Come identificare un processo che non ha Pid?

Come posso determinare quale processo in esecuzione utilizza java?

Determinazione del particolare processore su cui è in esecuzione un processo

Identificare quale MTA è in esecuzione