Короткий ответ
Ничего глупого. Это Проблема Github, связанная с основной причиной. Хотя команда WSL первоначально пометила его «по дизайну» и «функциям», в прошлом году в отношении него наблюдалась активность, которая указывает на то, что это «высокое качество по низкой цене».
С другой стороны, совсем недавно было отмечено, что он был создан 5 лет назад, и другие пользователи, желающие его исправить, не получили одобрения. Я предполагаю, что это не изменится до тех пор, пока WSL не примет подход к запуску, более похожий на Systemd (подробности см. Ниже).
Объяснение
... или больше, чем вы, вероятно, когда-либо хотели знать о кто
Есть две причины, по которым кто
не показывает никаких результатов:
Во-первых, очевидное - кто
предназначен для отображения (цитата из справочной страницы), «кто вошел в систему». Когда вы запускаете WSL, он фактически не отправляет вашему пользователю пароль для входа, поэтому у вас не запрашивается пароль.
Во-вторых, WSL работает самостоятельно. /в этом
обрабатывать как PID1 при запуске, что делает «магию» по настройке таких вещей, как:
- сеть Linux может подключаться к сети Windows
- автоматическое монтирование дисков Windows
- взаимодействие, которое позволяет Windows
.исполняемый
бежать
- и более ...
«Нормальная» система Linux, с другой стороны, запускается с помощью Systemd или SysVInit (или нескольких других систем инициализации за эти годы). Система инициализации, среди прочего, отвечает за установку уровня выполнения. И наряду с этим (я только что узнал об этом из той проблемы Github), /var/выполнить/utmp
конструкция, которая отслеживает, кто использует систему.
Есть несколько способов «заставить» кого-то работать:
Первый описан в этой ветке Github. Сначала взломайте /var/выполнить/utmp
с чем-то вроде:
sudo bash -c "echo '[1] [00049] [~~ ] [уровень запуска] [~ ] [4.4.0-17115-Micoroso] [0.0.0.0 ] [Среда, 28 февраля, 13:27:14 2018 STD]' | utmpdump -r > /var/run/utmp"
Затем принудительно выполните вход с помощью sudo логин -f $USER
. Затем вы можете увидеть, как ваш пользователь вошел в систему, используя кто
. Если бы вы снова вошли в систему через ssh
(вам нужно сначала настроить его), тогда этот логин также появится.
Во-вторых, вы можете запустить Systemd в собственном пространстве имен PID:
sudo -b unshare --pid --fork --mount-proc /lib/systemd/systemd --system-unit=basic.target
Подождите несколько секунд, пока Systemd запустится, и он инициализируется. /var/выполнить/utmp
. Технически на этом этапе вы можете sudo логин -f $USER
и увидеть кто
.
Обратите внимание, что Systemd нельзя полностью использовать без дополнительных усилий (выходящих за рамки этого ответа), и что вы должен завершите экземпляр Ubuntu WSL после этого, чтобы вернуться в стабильное состояние. Выйдите из WSL, а затем wsl --terminate <дистрибутив>
(куда <distro>
похоже убунту
). Как только вы начнете резервное копирование, все вернется на круги своя.