Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mtd_SPO_2013i.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
370.18 Кб
Скачать

Id,state,time,sl,re,pagein,vsz,rss,lim,tsiz,%cpu,%mem, command.

Существует несколько важных атрибутов процесса, которые не могут быть

просмотрены командой ps. Рассмотрим некоторые из них.

Текущий директорий является атрибутом процесса, наследуемым от процесса-родителя. Процесс может изменить свой текущий директорий, при этом новое значение будет занесено в переменную окружения данного процесса `PWD', его потомки будут наследовать измененное значение текущего директория, но на родительском процессе это изменение никак не отразится. Если присвоить переменной PWD маршрут некоторого директория, то сам текущий директорий при этом не изменится, просто значение переменной перестанет соответствовать значению этого атрибута процесса. Истинное значение текущего директория для shell может быть определено с помощью команды pwd, при посылке команд порождаемые процессы будут наследовать это значене атрибута. Отметим, что команда изменения текущего директория обязательно должна быть встроенной; если бы она была внешней, то текущий директорий изменялся бы только у порожденного процесса cd, но не для самого shell и не наследовался бы дальнейшими посылаемыми через него командами.

Маска создания файлов также является атрибутом процесса, наследуемым от процесса-родителя. Для shell маска создания файлов просматривается и изменяется командой umask. Запускаемые процессы могут менять для себя и своих потомков унаследованное значение атрибута umask, но это никак не отражается на значении этого атрибута у породившего их процесса shell и у процессов, порождаемых в результате посылки последующих команд. Команда umask может быть только встроенной, иначе будет невозможно изменять маску создания файлов. По тем же причинам, как и для команды cd, команда для изменения любого атрибута shell, наследуемого потомками, может быть только встроенной.

Все открытые файлы процесса также наследуются порождаемыми процессами, в сущности они являются атрибутами процесса, хотя их не принято так называть. Порожденный процесс может производить чтение и запись в файлы, открытые родителем до момента порождения процесса. Процесс-родитель также может продолжать их использовать. Например, если процесс перенаправил стандартный выводной поток в файл и, не закрывая этого файла, создал дочерний процесс, то выводной поток этого нового процесса будет записываться в тот же файл. Как и в случае других атрибутов, файлы, открытые процессами-потомками, процессу-родителю недоступны. Продолжая рассматриваемый пример, если процесс-потомок перенаправит стандартный выводной поток опять на терминал или в некоторые другой файл, то на процесс-родитель это изменение не распространится. Файлы, открываемые процессом-родителем, недоступны ранее созданным потомкам.

Переменные окружения (экспортируемые) также наследуются порождаемыми процессами.

Для процесса могут быть установлены лимитирующие параметры. Команда ulimit позволяет установить и отобразить эти параметры. Выяснить, какие ограничения установлены для вашего процесса login-shell можно с помощью команды:

ulimit -a

Установленные ограничения наследуются порождаемыми процессами, а поскольку пользователь работает через shell, следовательно всеми процессами данного пользователя. Пытаться изменить ограничения не следует, поскольку пользователь со своими правами может только ужесточить имеющиеся ограничения, причем вернуть их к прежнему уровню он уже не сможет.

Упражнение. Узнавая идентификатор родителя PPID, последовательно подставляете его в качестве значения опции -p следующей команды (где O – латинская буква в вернем регистре):

ps -O ppid,start,user -p идентификатор_процесса

В результате постройте родословное дерево вашего login-shell до процесса с ppid=1 (1 - это идентификатор PID процесса init). Для каждого узла дерева (процесса) на его уровне дерева напишите pid, время старта, статус, управляющий терминал, владельца-пользователя и командную строку. Отметить процесс – лидер сессии, процессы неактивные менее 20 сек.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]