Drush가 하위 프로세스에서 시작되면 중단됩니다.

J. Doe

Popen 명령에 꽤 긴 bash 명령을 전달하려고합니다. 명령은 다음과 같습니다.

'/usr/local/bin/drush --alias-path=/data/scripts/drush_aliases @test pml -y | /bin/grep -i dblog | /bin/grep -i enabled'

한 번에 전체 명령을 전달할 때 Popen 명령은 Cron에서 올바른 출력을 반환하지 않습니다. 이 문제를 해결하기 위해 문제를 해결하기 위해 전달하면서 목록 ( "명령"에서 볼 수 있음)으로 분리하려고합니다.

전체 코드에서 여러 다른 Popen개체를 연결하고 있습니다. 그러나 내 버그는 다음과 같은 경우에만 재현 할 수 있습니다.

command = ['/usr/local/bin/drush', '--alias-path=/data/scripts/drush_aliases', '@test', 'pml', '-y']

try:
   process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
   output = process.communicate()

이 중단 원인은 무엇입니까?

찰스 더피

프로세스가 중단되는 가장 일반적인 이유 중 하나는 stdin에서 입력을 읽으려는 경우입니다.

/dev/nullstdin 에 닫힌 파이프 (또는 핸들 )를 명시 적으로 전달하여이 문제를 해결할 수 있습니다 .

   process = subprocess.Popen(command,
       stdout=subprocess.PIPE,
       stderr=subprocess.PIPE,
       stdin=subprocess.PIPE)  ## this is new

communicate() 인수로 전달 된 내용을 작성한 후 stdin에 전달 된 파이프를 닫아 프로세스가 중단되는 것을 방지합니다.

Python 3.2 이상에서는 stdin=subprocess.DEVNULL.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python 하위 프로세스가 CPU 사용량 0 %로 무작위로 떨어지면서 프로세스가 "중단"됩니다.

분류에서Dev

redis에 게시하면 프로세스가 차단됩니다.

분류에서Dev

Python3 ElementTree 루프가 구문 분석 중에 중단됩니다. 추적에 하위 프로세스가 표시됩니다.

분류에서Dev

오늘 시작하면 Eclipse의 프로젝트가 중단됩니다.

분류에서Dev

Electron 빌드는 로컬에서 작동하지만 코드가 Github에 커밋되면 중단됩니다.

분류에서Dev

실행중인 프로세스 수가 맨 위에 표시됩니다.

분류에서Dev

SSH에서 시작된 AWS 프로세스는 SSH가 중단 될 때 종료됩니다.

분류에서Dev

Cordova 응용 프로그램을 실행하면 Visual Studio가 중지되고 다시 시작됩니다.

분류에서Dev

ssh에서 로그 아웃하면 보관 용 계정 프로세스가 중지됩니다.

분류에서Dev

생성 된 rsync 프로세스에서 wait를 사용하면 rsync가 예상대로 중지됩니다.

분류에서Dev

Python 다중 처리 : 부모 프로세스가 종료되면 자식 프로세스가 중단됩니까?

분류에서Dev

Windows 7로 GRUB를 부팅하면 GRUB가 중단되고 시스템을 부팅 할 수 없게됩니다.

분류에서Dev

Python 다중 처리에서 하위 프로세스가 깨끗하게 존재하면 stdout은 어떻게됩니까?

분류에서Dev

xamarin 프로젝트에 맵 컨트롤을 추가하면 중단됩니다.

분류에서Dev

kill ()은 /etc/rc.local에 의해 시작된 프로세스에서 완료되면 하위 프로세스를 중지하지 않습니까?

분류에서Dev

IOUtils에서 Java 프로세스가 중단됩니다. 의심되는 교착 상태

분류에서Dev

MongoCollection에 OfType <T>를 추가하면 UpdateOneAsync의 동작이 "중단"됩니다.

분류에서Dev

strace에 연결된 경우 중단 된 프로세스가 다시 시작됩니다.

분류에서Dev

G ++ : 다른 번역 단위로 이동하면 "상수 최적화"가 중단됩니까?

분류에서Dev

내보내기 명령 이해 : 이미 시작된 하위 프로세스에서 변수가됩니까?

분류에서Dev

캐시 일관성 작업 중에 프로세서가 중단됩니까?

분류에서Dev

프로세스가 시작되었을 때 서버에 게시하기 위해 Eclipse를 중지하는 방법이 있습니까?

분류에서Dev

다른 프로세스에서 프로세스를 시작하는 데 문제가 있습니다.

분류에서Dev

다중 프로세스에서 로깅하면 파일이 손상됩니까?

분류에서Dev

상태가 완료되면 이전 단계를 확인하고 완료되면 다음 프로세스가 표시됩니다.

분류에서Dev

Python 코드, 하위 프로세스가 glob에서 작동합니까?

분류에서Dev

eval을 사용하여 스크립트에 의해 시작된 하위 프로세스는 Ctrl + c에서 중단되지 않습니다.

분류에서Dev

Java에서 외부 프로그램을 실행하면 "액세스 거부"가 반환되거나 실행이 중지됩니다.

분류에서Dev

Rails에서 하나의 지연된 작업을 시작하면 두 개의 프로세스가 생성됩니다.

Related 관련 기사

  1. 1

    Python 하위 프로세스가 CPU 사용량 0 %로 무작위로 떨어지면서 프로세스가 "중단"됩니다.

  2. 2

    redis에 게시하면 프로세스가 차단됩니다.

  3. 3

    Python3 ElementTree 루프가 구문 분석 중에 중단됩니다. 추적에 하위 프로세스가 표시됩니다.

  4. 4

    오늘 시작하면 Eclipse의 프로젝트가 중단됩니다.

  5. 5

    Electron 빌드는 로컬에서 작동하지만 코드가 Github에 커밋되면 중단됩니다.

  6. 6

    실행중인 프로세스 수가 맨 위에 표시됩니다.

  7. 7

    SSH에서 시작된 AWS 프로세스는 SSH가 중단 될 때 종료됩니다.

  8. 8

    Cordova 응용 프로그램을 실행하면 Visual Studio가 중지되고 다시 시작됩니다.

  9. 9

    ssh에서 로그 아웃하면 보관 용 계정 프로세스가 중지됩니다.

  10. 10

    생성 된 rsync 프로세스에서 wait를 사용하면 rsync가 예상대로 중지됩니다.

  11. 11

    Python 다중 처리 : 부모 프로세스가 종료되면 자식 프로세스가 중단됩니까?

  12. 12

    Windows 7로 GRUB를 부팅하면 GRUB가 중단되고 시스템을 부팅 할 수 없게됩니다.

  13. 13

    Python 다중 처리에서 하위 프로세스가 깨끗하게 존재하면 stdout은 어떻게됩니까?

  14. 14

    xamarin 프로젝트에 맵 컨트롤을 추가하면 중단됩니다.

  15. 15

    kill ()은 /etc/rc.local에 의해 시작된 프로세스에서 완료되면 하위 프로세스를 중지하지 않습니까?

  16. 16

    IOUtils에서 Java 프로세스가 중단됩니다. 의심되는 교착 상태

  17. 17

    MongoCollection에 OfType <T>를 추가하면 UpdateOneAsync의 동작이 "중단"됩니다.

  18. 18

    strace에 연결된 경우 중단 된 프로세스가 다시 시작됩니다.

  19. 19

    G ++ : 다른 번역 단위로 이동하면 "상수 최적화"가 중단됩니까?

  20. 20

    내보내기 명령 이해 : 이미 시작된 하위 프로세스에서 변수가됩니까?

  21. 21

    캐시 일관성 작업 중에 프로세서가 중단됩니까?

  22. 22

    프로세스가 시작되었을 때 서버에 게시하기 위해 Eclipse를 중지하는 방법이 있습니까?

  23. 23

    다른 프로세스에서 프로세스를 시작하는 데 문제가 있습니다.

  24. 24

    다중 프로세스에서 로깅하면 파일이 손상됩니까?

  25. 25

    상태가 완료되면 이전 단계를 확인하고 완료되면 다음 프로세스가 표시됩니다.

  26. 26

    Python 코드, 하위 프로세스가 glob에서 작동합니까?

  27. 27

    eval을 사용하여 스크립트에 의해 시작된 하위 프로세스는 Ctrl + c에서 중단되지 않습니다.

  28. 28

    Java에서 외부 프로그램을 실행하면 "액세스 거부"가 반환되거나 실행이 중지됩니다.

  29. 29

    Rails에서 하나의 지연된 작업을 시작하면 두 개의 프로세스가 생성됩니다.

뜨겁다태그

보관