Como o Paramiko está segregando a saída e a mensagem de erro?

0

Se eu executar o jdksjdkd no terminal de uma máquina para outra usando paramiko, eu estou recebendo stderr.readlines() as Command not found .

    
por Abdulvakaf K 27.06.2018 / 07:55

1 resposta

3

A variável de ambiente PATH indica que os comandos estão localizados. Portanto, no seu caso, como " jdksjkdk " não foi encontrado no $PATH , ele gera um erro no descritor de arquivo STDERR e, portanto, você está obtendo stderr.readiness() como Comando não encontrado

Explanation: There are 3 standard file descriptors, every running program in linux opens the following file descriptors

  1. STDIN (0) => for standard input
  2. STDOUT(1) => for standard output
  3. STDERR (2) => for standard error
     

Portanto, quando o comando não foi encontrado, o erro foi gravado em STDERR (   arquivo desciptor = > 2), se foi bem sucedido, então a saída teria   foi escrito para STDOUT (descritor de arquivo = > 1). Desde que paramiko é   lendo o resultado de STDERR e não STDOUT , é assim que é   verificando se o erro não é produzido

    
por 27.06.2018 / 08:21

Tags