A tela não aparece na lista ao usar o sudo

2

Enquanto sob root user (impresso por whoami ), execução de

sh -c "screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

cria uma tela com saída de duas linhas, que pode ser reconectada via screen -r testcreen

Mas se eu estiver usando

sudo -n -u root sh -c "screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

a tela não aparece na lista. O que há de errado e o que devo fazer em vez disso?

(CentOS 5.2)

    
por Alex Abdugafarov 10.09.2011 / 07:37

2 respostas

1

Parece que a localização binária da sua tela não está no $ PATH sendo usado por sh. Então, quando você sudo, porque você não está invocando o shell de login para configurar um novo ambiente, o comando não existirá. Você pode verificar isso verificando algumas coisas.

torne-se root:

$ sudo -s
# which screen
/some/path/to/screen
# echo $PATH

A maneira mais fácil de corrigir isso é especificar o caminho completo para a tela no comando que você está usando:

$ sudo -n -u root sh -c "/some/path/to/screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

Se isso não resolver o problema, seria útil capturar se o sh tiver algum outro problema ao iniciar a tela:

$ sudo -n -u root sh -c "set -x ; screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""
    
por 17.09.2011 / 05:53
1

A tela é adicionada ao usuário root, use sudo screen -raAd para reconectar

    
por 10.09.2011 / 07:39