Признаки большого количества операций ввода-вывода, скорее всего, потребуют использования инструмента отслеживания для более подробного изучения того, что представляет собой этот ввод-вывод; strace
это распространенный способ сделать это:
strace -e trace=file -ff -o output -y -p $some_httpd_pid_here
-e trace=file
отслеживает операции, связанные с файлами (есть и другие удобные спецификаторы, см. прекрасное руководство ), но не показывает read
вызовы, которые могут быть необходимы для определения того, из каких файловых дескрипторов считываются; для этого -e trace=open,read
или вместо этого просто проследите все, а затем выполните поиск вывода... -ff
следует за ответвлениями, хорошо, если порождается CGI или что-то подобное, или если вместо этого вы отслеживаете главный процесс httpd
в момент его запуска. -o output
взаимодействует с -ff
и создает файлы output
или output.*
, которые можно использовать позже. -y
не переносим на более старые версии strace
, но избавляет от необходимости выяснять, на какой файловый дескриптор номер 42 или на что ссылается. (strace
также может быть ужасно медленным; см. также Linux sysdig
или SystemTap
для альтернативных подходов к отслеживанию вещей или иной отладке того, что делает ядро...)
Обнаружено обновление -initramfs в sbin. Я не понимаю, почему его нет в моем корневом PATH. Однако
# sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.19.0-5-amd64
сделал свое дело.
Была такая же ошибка при использовании команды su для входа в root
Решено добавлением /sbin в PATH после входа в root на терминале:
# su
# export PATH=/sbin:$PATH