мета-данные страницы
Это старая версия документа!
Выполнение домашнего задания "Процессы Linux"
Задание
При помощи /proc/ /sys/fs собрать информацию:
Шаг 1
- О текущем процессе:
Шаг 1
- О текущем процессе:
- Кол-во дескрипторов
- Потребление памяти
- Путь до исполняемого файла
- О текущей системе:
- Какой процессор (сколько)
- Какая память (сколько)
- Вывести все в Json
Шаг 2
Запустить приложение из шага 1 в изоляции при помощи например Docker
*Advanced level запустить руками в cgroup и namespace
Сравнить вывод Json шага 1 и шага 2
Решение
Сбор информации о текущем процессе
Для сбора создадим скрипт
nano collecting_information_about_the_current_process.sh
#!/bin/bash
# Получаем PID текущего процесса
PID=$$
# Получаем количество дескрипторов
FD_COUNT=$(ls /proc/$PID/fd/ | wc -l)
# Получаем потребление памяти
MEM_USAGE=$(awk '/VmRSS/ {print $2}' /proc/$PID/status)
# Получаем путь до исполняемого файла
EXEC_PATH=$(readlink /proc/$PID/exe)
# Формируем JSON-объект с собранной информацией
json='{"process_info": {'
json+="\"fd_count\": \"$FD_COUNT\", "
json+="\"memory_usage\": \"$MEM_USAGE\", "
json+="\"executable_path\": \"$EXEC_PATH\""
json+='}}'
echo $json > proc.json
Теперь выводим информацию из файла на экран
cat proc.json
Обсуждение