Как получить UID и PID

Итак, вот что я хочу сделать: Пользователь вводит имя пользователя USERNAME. Основываясь на этом имени пользователя, мне нужно получить список процессов, запущенных этим пользователем. Я планирую сделать это, получив UID этого пользователя и перечислив все процессы с этим UID. Я нашел только UID в файле /proc/$PID/status . Я не понимаю, как это сделать.

One Solution collect form web for “Как получить UID и PID”

Чтобы получить UID от имени пользователя, используйте id -u :

 $ id -u root 0 $ id -u lightdm 112 $ id -u nobody 65534 

Но вы изобретаете колесо. pgrep уже обрабатывает это просто отлично:

 $ pgrep -u www-data 1909 1910 1911 1912 $ id -u www-data 33 $ pgrep -u 33 1909 1910 1911 1912 

Вы также можете использовать plain ps :

 $ ps -U www-data -o uid,pid UID PID 33 1909 33 1910 33 1911 33 1912 
  • Что такое anon_inodes?
  • lsof vs cat / proc / ... / maps
  • Нет / proc / bus / usb directory
  • Как легко узнать, смонтировано ли какое-либо блочное устройство (или его часть)
  • Дескриптор файла, связанный с сокетом или каналом в proc
  • Уведомлять об изменениях в файле под / proc
  • / proc / cpuinfo показывает тактовую частоту с нулевым тактовым импульсом
  • Как получить переменные окружения очень короткого процесса?
  • / proc / <pid> / fd / 1 ничего не показывает
  • Имеет ли / proc файл устройства?
  • Что такое / proc / dma? Это только для старой поддержки?
  • Linux и Unix - лучшая ОС в мире.