Отримайте список завдань, розпочатих користувачем в системі Linux


1

Мені потрібно отримати завдання, які починає користувач. Я спробував кілька команд, таких як

xlsclients

Ці команди виконують майже те, що мені потрібно, але це відсутність інформації про користувача. У ньому перераховано відразу всі завдання (власне вікна) без імені користувача.

ps aux -u *username*

Це дає процеси користувачеві, але він включає і всі системні завдання, як-от:

/sbin/getty -8 38400 tty4
/usr/sbin/gpm -m /dev/input/mice -t exps2 

тощо.

Тому я хочу перелічити завдання, які виконує користувач, але виключаючи ті, що стосуються системи.


Як ви визначаєте "системні завдання"?
CVn

Завдання не були запущені користувачем. Наприклад; якщо користувач увійшов і запустив браузер, я просто хочу побачити google-chrome.
Мустафа Оркун Акар

Я досі не розумію, що ви маєте на увазі під "системними завданнями" - програмами графічного інтерфейсу, фоновими командами, орфанськими командами чи чимось іншим?
l0b0

Все, що ви згадали, це те, що я мав на увазі.
Мустафа Оркун Акар

Відповіді:


1

Якщо ви хочете позасиротні процеси:

  • pgrep -u "$USER" друкує PID, розпочаті поточним користувачем
  • pgrep -u "$USER" -P 1 друкує PID-сироти, розпочаті поточним користувачем

Поєднавши ці дані, ви можете отримати PID-адреси без осиротіння, розпочаті поточним користувачем:

pgrep -u "$USER" | grep -Fvx "$(pgrep -u "$USER" -P 1)"

Ви можете передати отриманий список в ps, topабо інші програми , щоб отримати детальну інформацію про кожному процесі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.