GNU/Linux >> Belajar Linux >  >> Linux

Tentukan di grup mana proses berjalan berada?

Daftar grup diberikan di bawah Groups di /proc/ /status; misalnya,

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

Grup utama diberikan di bawah Gid :

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

ps juga mampu menampilkan grup dari suatu proses, seperti yang ditunjukkan oleh jawaban lainnya.


Untuk id grup efektif, id grup nyata, dan id grup tambahan (seperti yang digunakan untuk kontrol akses):

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

gid dan rgid cukup portabel, supgid kurang begitu (semua 3 akan tersedia dengan ps from procps seperti yang biasanya ditemukan pada sistem berbasis Linux).

group , rgroup dan supgrp dapat digunakan untuk menerjemahkan id grup menjadi nama grup, tetapi perhatikan bahwa untuk id grup yang memiliki beberapa nama grup yang sesuai, hanya satu yang akan ditampilkan (sama seperti untuk ls -l vs ls -n atau apa pun yang berhubungan dengan nama pengguna atau grup berdasarkan id).

Untuk id grup proses (seperti yang digunakan untuk kontrol tugas terminal):

ps -o pgid -p "$pid"

Untuk menyimpannya ke dalam variabel:

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

Menggunakan ps :

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

Dari man ps , kolom keluaran yang digunakan untuk -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. Bagaimana Cara Menentukan Proses Yang Membuat File??

  2. Shell mana yang saya jalankan?

  3. Proses Yang Memiliki Pid 0?

  1. Bagaimana Mengidentifikasi Proses Yang Tidak Memiliki Pid?

  2. Bagaimana cara memulai proses dalam grup prosesnya sendiri?

  3. Proses mana yang memakan ptys di server Linux saya?

  1. Pastikan Sebuah Proses Selalu Berjalan?

  2. Menentukan prosesor tertentu di mana proses sedang berjalan

  3. Mengidentifikasi MTA mana yang sedang berjalan