> 백엔드 개발 > 파이썬 튜토리얼 > Unix 명령에 대한 Paramiko\의 exec_command에서 \'명령을 찾을 수 없음\' 오류를 해결하는 방법은 무엇입니까?

Unix 명령에 대한 Paramiko\의 exec_command에서 \'명령을 찾을 수 없음\' 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-21 07:00:03
원래의
549명이 탐색했습니다.

How to Resolve

Paramiko의 exec_command를 사용할 때 "Command Not Found" 오류로 인해 Unix 명령이 실패함

"sesu"와 같은 Unix 명령이 " Python의 Paramiko exec_command를 통해 실행할 때 "명령을 찾을 수 없음" 오류가 발생하는 경우 근본 원인은 SSHClient.exec_command의 기본 동작에 있을 수 있습니다.

기본 동작 이해

SSHClient. exec_command는 일반적으로 "로그인" 모드에서 작동하지 않거나 세션에 의사 터미널을 할당하지 않습니다. 결과적으로 대화형 SSH 세션 중에 호출되는 특정 시작 스크립트를 우회할 수 있습니다. 이러한 불일치로 인해 일반 대화형 세션과 다른 환경 변수 및 스크립트 분기가 발생할 수 있습니다.

문제 해결

이 문제를 해결하려면 다음 해결 방법을 고려하십시오.

  1. 명령의 전체 경로 지정: PATH에 의존하는 대신 명령의 전체 경로(예: "/bin/sesu test")를 사용하세요.
  2. 시작 스크립트 수정: 시작 스크립트가 대화형 세션과 비대화형 세션 모두에 대해 일관되게 PATH를 설정하는지 확인하세요.
  3. 로그인 셸을 통해 명령 실행: "- -login" 스위치를 사용하여 로그인 셸을 통해 명령을 명시적으로 실행합니다(예: "bash --login -c "sesu test")."
  4. 명령 환경 수정: 내부 환경 변경 명령 자체를 실행하여 필수 변수가 올바르게 설정되었는지 확인합니다.
  5. 의사 터미널 할당 강제(권장하지 않음): exec 채널에 의사 터미널을 할당하려면 "get_pty" 매개변수를 True로 설정합니다. . 그러나 이 방법은 의도하지 않은 결과를 초래할 수 있습니다.

위 내용은 Unix 명령에 대한 Paramiko\의 exec_command에서 \'명령을 찾을 수 없음\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿