저는 리눅스 용 파이썬 프로그램을 작성하고 있습니다. 프로그램은 기본적으로 터미널에 대한 피드백을 사용자에게 제공합니다. 사용자에 대한 피드백은 터미널 제어권을 포기하고 백그라운드에서 실행을 계속해야합니다. 이것을 어떻게 할 수 있습니까? 프로그램이 터미널의 제어권을 양도하는 방법은 무엇입니까?
는답변
:
import os
import time
msg = raw_input("Enter message for child process")
x = os.fork()
if not x:
for i in range(5):
time.sleep(3)
print msg
os.fork() 자식 프로세스에서 0 반환하고, 각각 그 paret 과정 주에서 자식 프로세스의 ID를 프로세스는 로컬 변수의 자체 복사본을 가져옵니다.
희망이
간단하고 우아합니다. 고맙습니다 – Raphael
그냥 python-daemon으로 프로그램을 마무리 감사드립니다.
분기 여기에, 아마도 옳은 일이다하는 데 도움이, 그리고 더 나은 daemonising하지만, 질문에 대한 코멘트에서 알 수 있듯이 스크립트를 변경하지 않고, 대부분 같은 효과를 얻을 수있는 간단한 방법 (이다)를 사용하여 스크립트를 백그라운드에두기 만하면됩니다.
그러나 &
이 수행하지 않을 내용은 터미널에 대한 연결을 완전히 포기합니다. 이를 위해, nohup
를 사용
(nohup python foo.py >foo-output &)
스크립트를 daemonising하는 간단한 방법입니다. nohup
은 제어 터미널이 이동할 때 프로세스가 종료되지 않고 스크립트가 서브 쉘 (...)
의 백그라운드로 들어가는 것을 의미합니다.이 쉘은 종료 프로세스가 init 프로세스의 자식으로 끝나는 것을 의미합니다. 그게 대부분 'daemonising'이 의미하는 것입니다.
이것은 원래의 질문보다 더 일반적인 기술이지만, 그럼에도 불구하고 유용합니다.
- 1. 터미널의 다운로드 폴더에있는 파일을 업로드하는 방법은 무엇입니까?
- 2. UIPopoverController가 제어권을 가지며 놓아주지 않습니다.
- 3. lisp 문과 같은 함수/터미널의 이진 트리를 인쇄하는 방법은 무엇입니까?
- 4. C에서 Unix 터미널의 입력 파일 이름을 얻는 방법은 무엇입니까?
- 5. Git 및 Subversion에서 터미널의 현재 사용자를 찾는 방법은 무엇입니까?
- 6. Java 코드에서 유닉스 터미널의 외부 도구를 실행하는 방법은 무엇입니까?
- 7. Linux 쉘에서 현재 가상 터미널의 활성 모니터를 확인하는 방법은 무엇입니까?
- 8. 터미널의 tar 파일에서 디렉토리 내의 파일을 추출하는 방법은 무엇입니까?
- 9. 터미널의 오른쪽에 git 상태 정보를 표시하는 방법은 무엇입니까?
- 10. 배쉬 쉘과 배쉬 터미널의 차이점은 무엇입니까?
- 11. IDE 콘솔과 터미널의 차이점
- 12. 터미널의 키보드 이벤트
- 13. 터미널의 반향을 끄려면 어떻게합니까?
- 14. 터미널의 크기가 이맥스를 혼란스럽게합니다
- 15. 아쿠아 터미널의 gnuplot 파선
- 16. 우분투 터미널의 오디오 피드백
- 17. 클라이언트 응용 프로그램에 제어권을 반환하고 API에서 입력을 다시 요청하려면 어떻게해야합니까?
- 18. Perl 출력이 터미널의 왼쪽에 표시됩니까?
- 19. 리눅스 터미널의 진행 표시 줄
- 20. CPU를 PHP의 다른 프로세스에 양도하는 더 좋은 방법이 있습니까?
- 21. 제어 문자는 하이퍼 터미널의 형식을 표시합니다
- 22. 프로그램이 사용하려고하는 네트워크 포트를 추적하는 방법은 무엇입니까?
- 23. 유도로 프로그램이 무엇을하는지 증명하는 방법은 무엇입니까?
- 24. 프로그램이 Citrix에서 실행 중임을 감지하는 방법은 무엇입니까?
- 25. 내 프로그램이 반환하는 값을 확인하는 방법은 무엇입니까?
- 26. 프로그램이 하위 프로세스와 충돌했는지 확인하는 방법은 무엇입니까?
- 27. 프로그램이 배열 색인을 찾는 방법은 무엇입니까?
- 28. 응용 프로그램이 액세스하려고하는 파일을 확인하는 방법은 무엇입니까?
- 29. Linux의 프로그램이 충돌하는 주소를 아는 방법은 무엇입니까?
- 30. 이 프로그램이 좀비 프로세스를 만드는 방법은 무엇입니까?
'python script.py '와 같이 스크립트를 실행하거나 다음 질문에 답을 사용하여 프로세스를 디먼 처리 할 수 있습니다. http://stackoverflow.com/questions/473620/how-do-you-create- a-daemon-in-python – Collin