2012-12-03 3 views
2

데비안을 사용하고 있으며 부트시 실행할 수 있도록 rc.local 동안 실행하고 싶은 python 스크립트가 있습니다. 나는 이미 그것을 실행하고 끝내기위한 테스트 파일을 가지고 작업 해왔다.부트 스크립트로 실행할 때 파이썬 스크립트를 끝내시겠습니까?

문제는이 파일이 결국 스케줄러를 사용하여 무기한 실행되어야한다는 것입니다. 작업은 직렬 읽기, 읽기에 대한 소량의 처리 및 MySQL 데이터베이스에 삽입하는 것입니다. 그러나 Ctrl + C (^ C)를 사용하여 테스트 스크립트를 일찍 종료 할 수 없기 때문에 변경이 필요한 경우 스크립트를 취소 할 수 없다는 사실에 신경이 쓰이지 않습니다.

내 희망은 내가 수행하지 못한 명령이 있다는 것입니다. 파이썬 스크립트를 종료하고 rc.local을 끝내는 다른 핵심 명령이 있습니까?

감사합니다.

EDIT : 부팅하는 동안 백그라운드에서 파이썬 스크립트를 시작할 수있는 방법이 있다면 도움이 될만한 또 다른 해결책이 있습니다. 따라서 스크립트를 시작한 다음 백그라운드에서 스크립트를 계속 실행하면서 로그인을 허용합니다.

나는 이것이 가능한 일이 아니라고 생각하기 시작했다. 그래서 내가하려고하는 것과 비슷한 것을 달성하기위한 다른 제안이 도움이 될 것이다.

다시 한번 감사드립니다.

+0

Ctrl + C는 파이썬 스크립트를 정상적으로 종료해야합니다. 모든 예외를 잡거나 (파이썬이 Ctrl + C를 'InterruptException'으로 해석 할 때) 바보 같은 것을 잡아 내지 않으면 말입니다. –

+0

부팅 후 또는 Idle을 통해 쉘에서 스크립트를 실행할 때 스크립트를 올바르게 종료 할 수 있습니다. /etc/rc.local을 통해 부팅하는 동안 스크립트를 실행할 때 스크립트를 종료 할 수 없습니다. Ctrl + C를 누르면 쉘에^C가 표시되지만 종료되지는 않습니다. –

답변

1

내 부분에는 바보 같은 실수였습니다.

나는 이것의 요점은 당신이 쉘과 비올라에서 실행 할 때처럼 스크립트 호출의 끝에 "&"를 추가하도록 파이썬 스크립트가 부팅하는 동안 백그라운드 프로세스로 실행할 수 있도록 깨달았다 "Enter"키를 눌러 암호 입력 프롬프트로 이동할 수 있습니다.

이 답변은 여기에 넣으려는 것입니다.이 작업은 끔찍한 일이지만, 내가 찾고있는 작업을 수행하는 경우에 대비해야합니다.

0

Making scripts run at boot time with Debian

  1. /etc/init.d/에 스크립트를 넣어. 따라서 스크립트가 my_script이라는 파일에 있으면 /etc/init.d/my_script에 있어야합니다.

  2. 루트로 update-rc.d my_script defaults을 실행하십시오.

  3. 스크립트를 실행 가능하게 만들고 shebang을 포함해야합니다. 즉, 스크립트의 첫 번째 줄은 #!/usr/bin/python이어야합니다.

+0

감사합니다. 부팅하는 동안 마지막으로 호출되도록 /etc/rc.local에 스크립트 호출을 추가하는 것을 선호합니다. –

관련 문제