2012-10-15 7 views
1

Ustream에서 라이브 스트림을 기록하는 명령을 생성하는 파이썬 코드가 있습니다.Python에서 주어진 시간 동안 쉘 스크립트를 실행하십시오.

쇼를 녹화하기 위해 일주일에 한 번이 스크립트를 실행하려면 cronjob을 설정하고 싶습니다. 올바른 명령을 생성 한 후 지정된 시간 동안 실행 된 다음 그걸 중지 시키려면 코드가 있습니다. ?

나는 스크립트를 실행하는 방법이 있어야하고, 원하는 시간을 기다렸다가 그 ID를 사용하여 프로세스를 종료해야한다고 생각한다. 그 맞습니까?

답변

2

시작된 프로세스가 시작할 때 해당 프로세스 ID를 파일에 기록하도록 할 수 있습니다. 그런 다음 해당 파일을 읽는 다른 cron 작업을 만들어 해당 파일의 프로세스 ID를 종료합니다.

당신은 양자 택일 파일로 시작 프로세스의 ID를 기록하는 '스타터'bash는 스크립트 만들기 (오히려 시작 프로세스를 수정하는 것보다) 수 : 다음

#!/bin/bash -e 
nohup python ustream_recorder.py > /tmp/ustream_recorder.log 2>&1 & 
echo $! > /tmp/ustream_recorder.pid 

을, 그것을 죽일 :

#!/bin/bash -e 
kill -INT `cat /tmp/ustream_recorder.pid` 
rm /tmp/ustream_recorder.pid 
+0

저는 Python 개발자가 아니므로 명령을 실행하고 ID를 얻는 방법에 대한 예제를 제공해 주시겠습니까? 감사. – AngelGris

+0

@ LucianoGarcíaBes : 내 대답에 프로세스를 시작하고 프로세스 ID를 파일에 저장하는 bash 스크립트를 추가했습니다. – icktoofay

+0

감사합니다. 나는이 똑같은 코드를 사용하지 않았지만 문제를 해결하기위한 아이디어를 얻었으며 지금은 효과가있다. – AngelGris

관련 문제