20 окт. 2000 г.

Азы linux (для детей) урок 27

Процессы (резюме)

Linux является многопользовательской и многозадачной операционной системой с UNIX-подобным способом управления процессами. Скорость выполнения команд может зависеть от тысячи незначительных факторов. Среди прочего мы узнали много новых команд для отображения процессов и их управления. Вот список:
Команда Значение
at Очередь заданий для последующего выполнения.
atq Списки ожидающих заданий пользователей.
atrm Удаление заданий, определяется их номера.
batch Выполнение команд, когда позволяет уровень загруженности системы
crontab Сохранение crontab'ов для индивидуальных пользователей
halt Остановка системы
init run level Контроль процесса инициализации
jobs Списки текущих выполняющихся работ
kill Завершение процесса
mesg Управление доступом на запись в вашем терминале.
netstat Отображение сетевых подключений, таблиц маршрутизации, статистики интерфейсов и др.
nice Запуск программы с измененным приоритетом.
pgrep Отображение процессов
ps Отчет о статусе процесса
pstree Отображение дерева процессов
reboot Остановка системы
renice Изменение приоритета запущенных процессов
shutdown Отключение системы
sleep Задержка в течение определенного времени.
time Команда времени или отчет использования ресурсов
top Отображение процессов главного центрального процессора
uptime Отображает, как долго система работает
vmstat Отчет статистики виртуальной памяти
w Показывает, кто вошел в систему, и что они делают.
wall Отправка сообщения всем терминалам
who Показывает, кто вошел в систему
write Отправка сообщения другому пользователю




Упражнения

Основное

Вот некоторые упражнения, которые помогут вам ощутить процессы, запущенные в вашей системе.
  • Выполните top в одном терминале, пока вы делаете упражнения в другом.
  • Выполнить команду ps.
  • Прочитайте man-страницы, чтобы узнать, как отобразить все ваши процессы.
  • Выполните команду find /. Какой эффект это окажет на загруженность системы? Остановите эту команду.
  • В графическом режиме запустите программу xclock на переднем плане. Затем отправьте ее работать в фоновый режим. Остановите программу, используя команду kill.
  • Выполните xcalc сразу в фоновом режиме для того, чтобы приглашение терминала было доступно снова.
  • Что делает kill -9 -1?
  • Откройте два терминала или терминальных окна снова и используйте write для отправки сообщения с одного на другой.
  • Выдайте команду dmesg. Что она сообщает?
  • Сколько времени занимает выполнение ls в текущем каталоге?
  • На основе записей процессов в /proc, принадлежащих вашей UID, чтобы вы сделали с целью узнать, какие из этих процессов действительно представлены?
  • Как долго ваша система была запущена?
  • Какой ваш текущий TTY?
  • Название 3-х процессов, которые не могут иметь init в качестве первоначального родителя.
  • Название 3-х команд, которые используют режим SUID. Объясните, почему это так.
  • Название команд, которые, как правило, приводят к самой высокой загруженности вашей системы.

Загрузка, инициализация и т.д.

  • Вы можете перезагрузить систему как обычный пользователь? Почему это так?
  • В соответствии с вашим текущим уровнем выполнения перечислите шаги завершения работы.
  • Как вы измените системный уровень выполнения? Перейдите с вашего уровня выполнения по умолчанию на уровень 1 и обратно.
  • Составьте список всех служб и демонов, которые запущены, когда ваша система загрузилась.
  • Какое ядро в текущий момент загружается при старте?
  • Предположим, что вы должны запустить некие экзотические службы во время загрузки. До этого вы заходили в систему после ее загрузки и запускали эти службы вручную, используя сценарий под названием deliver_pizza в вашем домашнем каталоге. Что вы сделаете для того, чтобы запустить службы автоматически на уровне выполнения 4, который вы определили только для этой цели?

Планирование

  • Используйте sleep для создания напоминания, что ваша паста готова через 10 минут.
  • Задайте at задание, которое копирует все файлы в домашней директории в /var/tmp в течение получаса. Вы можете создать подкаталог в /var/tmp.
  • Создайте cronjob, который решает эту задачу с понедельника по пятницу в обед.
  • Убедитесь, что он работает.
  • Сделать ошибку в записи crontab как выдача несуществующей команды coppy вместо cp. Что произойдет при выполнении задачи?