Дважды вижу пользователя

Вы можете использовать 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 документ , должно быть возможно выяснить, что вызывает увеличение скорости вращения.

0
10.03.2019, 11:03
2 ответа

Вы ранее завершали сеансы пользователя 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, чтобы избежать этой проблемы в первую очередь.

2
28.01.2020, 02:14

Вы написали

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этого не делает. Таким образом, каждое открытое вами окно будет зарегистрировано под вашей исходной учетной записью пользователя, которая вошла в систему.

1
28.01.2020, 02:14

Теги

Похожие вопросы