Основы многозадачности в Linux


Получение информации о процессе



бет5/15
Дата16.11.2022
өлшемі472,04 Kb.
#158456
1   2   3   4   5   6   7   8   9   ...   15
Байланысты:
5-6 лаб раб (1)

Получение информации о процессе
Итак, мы выяснили, что к каждому процессу привязаны следующие важные данные:
идентификатор процесса (PID);
идентификатор родительского процесса (PPID);
идентификатор пользователя (UID).
Есть и другие данные, которыми располагает процесс, но мы пока о них говорить не будем.
Получить PID, PPID и UID текущего процесса можно с помощью следующих системных вызовов, объявленных в заголовочном файле unistd.h:
pid_t getpid (void);
pid_t getppid (void);
uid_t getuid (void);
Типы данных pid_t и uid_t являются целыми числами, размерность которых зависит от реализации. Чтобы использовать эти типы, нужно включить в программу заголовочный файл sys/types.h. Системный вызов getpid() возвращает идентификатор текущего процесса, getppid() — родительского, а getuid() — идентификатор пользователя, от лица которого выполняется процесс. Но возникает вопрос: почему последний из этих вызовов возвращает целое число?
Загляните в файл /etc/passwd, где хранится информация обо всех пользователях системы. В современных дистрибутивах Linux файл /etc/passwd может содержать довольно много "странных" записей. Не пугайтесь, в основном это служебные учетные записи псевдопользователей (pseudousers).
Каждая строка файла /etc/passwd — это запись, соответствующая конкретному пользователю системы. В свою очередь каждая запись разделяется двоеточиями на семь полей.
 Первое поле — имя пользователя. Это то, что вы вводите в приглашении "login:" после загрузки системы.
 В ранних Unix-подобных системах второе поле файла /etc/passwd содержало зашифрованный пароль. В современных системах это поле пустое или содержит символ "x", а зашифрованные пароли хранятся в других файлах.
 Третье поле — идентификатор пользователя. Это то самое уникальное для каждого пользователя системы число, которое возвращает системный вызов getuid().
 Четвертое поле — идентификатор группы по умолчанию.
 В пятом поле /etc/passwd может быть что угодно. Это поле содержит описание пользователя, но чаще всего в нем находится либо полное имя пользователя, либо информация о том, для чего в системе "прописался" псевдопользователь.
 Следующее поле содержит рабочий (домашний) каталог пользователя.
 В последнем поле /etc/passwd указывается путь к командной оболочке пользователя.
Итак, теперь вы знаете, что каждому пользователю системы соответствует уникальное целое неотрицательное число, которое называется идентификатором пользователя и часто обозначается аббревиатурой UID (User IDentifier).
Чтобы узнать числовой UID текущего пользователя, можно выполнить следующую команду:


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   15




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет