>_ IzzyLab

Практическое задание

/proc: командная строка процесса

средне

Запущен процесс sleep 9999. Прочитай его командную строку из /proc/PID/cmdline и запиши её (аргументы, разделённые пробелом) в /root/cmd.txt.

Что потренируешь:
  • /proc
  • cmdline
  • процессы
  • tr
  • нулевой байт

Разбор темы

Виртуальная файловая система /proc — это окно ядра в состояние системы: под каждый процесс заводится каталог /proc/PID/, а внутри лежат псевдофайлы с его метаданными. Файл cmdline хранит аргументы командной строки ровно так, как их получил процесс: как массив C-строк, разделённых нулевым байтом (\0), а не пробелами — поэтому наивный cat слепит всё в кашу. Чтобы получить читаемую строку, нулевые байты нужно заменить на пробелы посимвольным преобразователем потока (см. tr), а PID найти по имени процесса (pgrep).

Что проверяется

  1. командная строка процесса прочитана

Как это выглядит