Por que o login não pode ser chamado como um subprocesso e executado em qualquer shell, exceto no shell de login?

0

A partir da página de manual de login

The login program is used to establish a new session with the system. It is normally invoked automatically by responding to the login: prompt on the user's terminal. login may be special to the shell and may not be invoked as a sub-process. When called from a shell, login should be executed as exec login which will cause the user to exit from the current shell (and thus will prevent the new logged in user to return to the session of the caller). Attempting to execute login from any shell but the login shell will produce an error message.

No console gráfico, eu poderia executar exec sudo login t em um shell bash não -login interativo em um emulador de terminal lxterminal . Então, o que " login pode ser especial para o shell e não pode ser invocado como um subprocesso " e " Tentando executar o login        de qualquer shell, mas o shell de login produzirá uma mensagem de erro "mean?

Mas também noto que quando mudo para um console de texto por Ctrl + Alt + F2, recebo mensagens de erro e estão relacionadas às aspas? Obrigado.

    
por Tim 04.05.2018 / 18:40

1 resposta

1

O shell de login é especial porque configura o ambiente e executa scripts de login e é o "líder da sessão" (assim, se é morto, todos os seus processos filhos também são mortos.) Além desses itens, é essencialmente o mesmo que outros shells.

No entanto, o erro que você está recebendo no console é completamente alheio a login : é um erro com o dispositivo USB ( EPROTO ), discutido aqui e aqui . Você pode tentar testar o adaptador de rede em outro computador, alterar a porta USB usada, mudar o cabo (se ele usar um) e, possivelmente, desativar a suspensão automática.

    
por 04.05.2018 / 19:25

Tags