Программирование для Linux. Профессиональный подход
Шрифт:
Опытные программисты часто создают несколько взаимодействующих процессов в рамках одного приложения, чтобы оно могло выполнять группу действий одновременно. Это повышает надежность приложения и позволяет ему использовать уже написанные программы.
Большинство описанных в данной главе функций управления процессами доступно и в других UNIX-системах. В основном они объявлены в файле
3.1. Знакомство с процессами
Пользователю достаточно войти в систему, чтобы в ней начали выполняться процессы. Даже если пользователь ничего не запускает, а просто сидит перед экраном и пьет кофе. в системе все равно "теплится жизнь". Любой выполняющейся программе соответствует один или несколько процессов. Давайте для начала познакомимся с теми из них, которые присутствуют по умолчанию.
3.1.1. Идентификаторы процессов
Каждый процесс в Linux помечается уникальным идентификатором (PID, process identifier). Идентификаторы — это 16-разрядные числа, назначаемые последовательно по мере создания процессов.
У всякого процесса имеется также родительский процесс (за исключением специального демона
Работая с идентификаторами процессов в программах, написанных на языках С и C++, следует объявлять соответствующие переменные как имеющие тип
Обратите внимание на важную особенность: при каждом вызове программа сообщает о разных идентификаторах, поскольку всякий раз запускается новый процесс. Тем не менее, если программа вызывается из одного и того же интерпретатора команд, то родительский идентификатор оказывается одинаковым.
3.1.2. Получение списка активных процессов
Команда
Будучи вызванной без аргументов, команда ps выводит список тех процессов, управляющим терминалом которых является ее собственный терминал:
В данном случае мы видим два процесса. Первый из них.
Более полный список можно получить с помощью следующей команды:
Опция
В опции
Ниже приведено несколько первых и последних строк, выдаваемых этой командой в нашей системе:
Заметьте: родительский идентификатор команды
3.1.3. Уничтожение процесса
Для уничтожения процесса предназначена команда
Команда
3.2. Создание процессов
Существуют два способа создания процессов. Первый из них относительно прост, но применяется редко, поскольку неэффективен и связан со значительным риском для безопасности системы. Второй способ сложнее, но избавлен от недостатков первого.
10
Команда
3.2.1. Функция system
Функция
Матабар V
5. Матабар
Фантастика:
фэнтези
рейтинг книги
Ермак. Телохранитель
2. Ермак
Фантастика:
альтернативная история
рейтинг книги
Кукловод
4. Династия
Фантастика:
попаданцы
аниме
рейтинг книги
Цеховик. Книга 1. Отрицание
1. Цеховик
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Девочка из прошлого
3. Айдаровы
Любовные романы:
современные любовные романы
рейтинг книги
Бастард Императора. Том 6
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Оружейникъ
2. Александр Агренев
Фантастика:
альтернативная история
рейтинг книги
Последний Паладин. Том 6
6. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Первый среди равных. Книга IX
9. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Чиновникъ Особых поручений
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
рейтинг книги
КАМЕРГЕРСКИЙ ПЕРЕУЛОК
Фантастика:
фэнтези
рейтинг книги