Вы можете использовать blktrace
( доступно в Debian) для отслеживания всей активности на данном устройстве; например
sudo blktrace -d /dev/sda -o - | blkparse -i -
или просто
sudo btrace /dev/sda
покажет всю активность на / dev / sda
. Результат выглядит так:
8,0 3 51 135.424002054 16857 D WM 167775248 + 8 [kworker/u16:0]
8,0 3 52 135.424011323 16857 I WM 209718336 + 8 [kworker/u16:0]
8,0 3 0 135.424011659 0 m N cfq496A / insert_request
Пятый столбец - это идентификатор процесса, а последний - имя процесса, если оно есть.
Вы также можете сохранять трассировки для последующего анализа; blktrace
включает ряд инструментов анализа, таких как вышеупомянутые blkparse
и btt
. blktrace
- это инструмент очень низкого уровня, поэтому может быть не так просто выяснить, что в первую очередь вызвало активность, но с помощью прилагаемой документации (см. / usr / share / doc / blktrace
, если вы установили пакет Debian) и blktrace
документ , должно быть возможно выяснить, что вызывает увеличение скорости вращения.
Вы ранее завершали сеансы пользователя test
с помощью kill -9
?
В зависимости от операционной системы и того, как она обрабатывает обновления файлов utmp
/ wtmp
, завершение сеанса пользователя с помощью kill -9
может привести к тому, что его запись сеанса в файле utmp
останется в «сессии». находится в активном состоянии.
Когда инициализируется новый сеанс с использованием того же (псевдо-)устройства TTY, код, записывающий запись utmp
, видит, что слот для этого устройства TTY уже используется активной записью, и использует следующий свободный слот.
Затем такие команды, как w
, who
или finger
, имеют разумное ожидание того, что только один пользователь в каждый момент времени может использовать устройство TTY, поэтому, как только они находят одну запись для определенного устройства TTY, они выигрывают. не ищите никаких других... и поэтому они отображают неправильную, устаревшую запись вместо той, которая на самом деле актуальна.
Команду utmpdump
можно использовать для вывода двоичного файла utmp
в текстовый формат, чтобы проверить, не произошло ли такое повреждение utmp. Затем вы можете отредактировать текстовую версию, чтобы удалить устаревшие записи, и использовать utmpdump -r
для восстановления нового двоичного файла utmp
с удаленными поврежденными записями.
Или, если вы можете на мгновение вывести из системы всех пользователей, просто сделайте так, чтобы все остальные вышли из системы, обрежьте файл utmp до нулевого размера, выйдите из системы и войдите снова.
# echo "Everyone logout now, please" | wall
# > /var/run/utmp
# <logout>
И в будущем, пожалуйста, используйте kill -HUP
для завершения сеансов оболочки вместо kill -9
или kill -KILL
, чтобы избежать этой проблемы в первую очередь.
Вы написали
I further open two terminal sessions for each of the users respectively
А потом в комментарии вы уточнили, что после открытия нового окна терминала
I then use "su - username" to log in to the other user
При открытии окна терминала создается запись в utmp
. Команда su
этого не делает. Таким образом, каждое открытое вами окно будет зарегистрировано под вашей исходной учетной записью пользователя, которая вошла в систему.