Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 7 из 12

strace и /proc: что делает процесс

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 1 из 8 · на машине · 5 мин

Выгрузка молчит

Чему научишься

  • Запускать программу под strace и находить вызов, на котором она сдалась.
  • Подключаться к работающему процессу через sudo strace -p и видеть, в каком вызове он ждёт.
  • Читать открытые файлы процесса в /proc/<PID>/fd и находить через lsof, кто держит файл.

Каждую ночь cron запускает программу nightsync: она отправляет заказы дня на сервер архива. Утром отправки нет, а в отчёте cron — только код завершения 1. Запусти nightsync сам и посмотри, что она скажет.

Упражнение · посмотреть

Запусти nightsync

В ~/sync-lab запусти nightsync, а потом посмотри код, с которым она завершилась.

Сначала предположи

Ночью nightsync отработала с ошибкой. Что она напечатает, если запустить её вручную?

Теперь начни упражнение, выполни команду и сверь прогноз с выводом.

Войти и начать Машина доступна после входа
Проверь себя 1 вопрос

nightsync ничего не напечатала и вышла с кодом 1. Что из этого известно точно?

  • Тогда оболочка написала бы command not found, а код был бы 127. Где лежит программа, покажет type nightsync.

  • Процесс, убитый сигналом, выходит с кодом 128 + номер сигнала — например, 137 после SIGKILL. У nightsync код 1.

  • Удачная работа кончается кодом 0, даже если делать было нечего. Код 1 — отказ.

nightsync запустилась и сообщила об отказе только кодом 1.

Ubuntu 24.04
Загрузка…