AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1365678
Accepted
John Rennie
John Rennie
Asked: 2021-09-25 21:59:14 +0800 CST2021-09-25 21:59:14 +0800 CST 2021-09-25 21:59:14 +0800 CST

who command não produz saída no WSL2

  • 772

Estou usando o Ubuntu 20.04 no subsistema Windows para Linux no Windows 10. Quando digito o whocomando, não recebo saída:

renniej@ratitch:~$ whoami
renniej
renniej@ratitch:~$ who
renniej@ratitch:~$

Eu tentei várias coisas como sudo whoe, who -amas ainda não recebo saída. who --versiondá:

who (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Joseph Arceneaux, David MacKenzie, and Michael Stone.

Estou fazendo alguma bobagem aqui? Ou isso é um recurso do WSL2?

windows-10
  • 1 1 respostas
  • 1064 Views

1 respostas

  • Voted
  1. Best Answer
    NotTheDr01ds
    2021-09-26T00:45:55+08:002021-09-26T00:45:55+08:00

    Resposta curta

    Nada bobo. Há um problema no Github relacionado à causa raiz . Enquanto a equipe da WSL originalmente o classificou como "por design" e "recurso", houve atividade no ano passado que indica que é "alto valor e baixo custo".

    Por outro lado, mais recentemente, observa-se que foi criado há 5 anos e não tem "polegar para cima" de outros usuários que desejam corrigi-lo. Meu palpite é que isso não será alterado até que o WSL adote uma abordagem mais semelhante ao Systemd para a inicialização (veja abaixo para obter detalhes).

    Explicação

    ... ou mais do que você provavelmente sempre quis saberwho

    Há dois motivos pelos quais whonão está mostrando nenhum resultado:

    • Primeiro, o óbvio -- whoé projetado para mostrar (citando a página man), "quem está logado". Quando você inicia o WSL, ele não envia seu usuário por meio da senha de login, razão pela qual não é solicitada uma senha.

    • Segundo, o WSL executa seu próprio /initprocesso como PID1 na inicialização, que faz a "mágica" de configurar coisas como:

      • a rede Linux sendo capaz de pegar carona na rede Windows
      • a montagem automática de unidades do Windows
      • a interoperabilidade que permite que o Windows .exeseja executado
      • e mais ...

      Um sistema Linux "normal", por outro lado, inicia com Systemd ou SysVInit (ou um punhado de outros sistemas init ao longo dos anos). O sistema init é responsável por estabelecer o nível de execução, entre outras coisas. E junto com isso (estou aprendendo isso sozinho com esse problema do Github), a /var/run/utmpconstrução, que é o que rastreia quem está usando o sistema.

    Existem algumas maneiras de "forçar" quem trabalhar:

    • O primeiro é abordado nesse tópico do Github. Primeiro, hackeie um /var/run/utmpcom algo como:

      sudo bash -c "echo '[1] [00049] [~~  ] [runlevel] [~           ] [4.4.0-17115-Micoroso] [0.0.0.0        ] [Wed Feb 28 13:27:14 2018 STD]' | utmpdump -r > /var/run/utmp"
      

      Em seguida, force um "login" com sudo login -f $USER. Você pode então ver seu usuário conectado usando who. Se você fizer login novamente via ssh(você precisa configurá-lo primeiro), esse login também aparecerá.

    • Segundo, você pode iniciar o Systemd em seu próprio namespace PID:

      sudo -b unshare --pid --fork --mount-proc /lib/systemd/systemd --system-unit=basic.target
      

      Aguarde alguns segundos para que o Systemd seja inicializado e ele será inicializado /var/run/utmp. Tecnicamente, neste ponto, você pode sudo login -f $USERe ver who.

      Observe que o Systemd não é totalmente utilizável sem esforço adicional (além do escopo desta resposta) e que você deve encerrar a instância do Ubuntu WSL depois de fazer isso para retornar a um estado estável. Saia do WSL e depois wsl --terminate <distro>(onde <distro>é provável ubuntu). Assim que você reiniciar, tudo voltará ao normal.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve