2014-09-06 4 views
0

나는 우분투 신출내기 작업으로 실행중인 파이썬 스크립트가 있습니다.파이썬 우분투 upstart 작업 자체를 다시 시작해야합니다

sudo service my-service-name start 

서비스 자체의 파이썬 코드에서 서비스를 다시 시작해야하는 경우가 있습니다. 내가하는 일은 다음과 같습니다.

import subprocess 
import shlex 
cmd = 'sudo service my-service-name restart' 
subprocess.check_output(shlex.split(cmd), stderr=subprocess.STDOUT) 

쉘에서 cmd를 실행하면 신출내기 작업을 성공적으로 다시 시작할 수 있습니다. 작업 자체에서 실행하면 작업이 중지되지만 결코 다시 시작되지 않습니다.

업 스타트 작업에 문제가 있습니까? 그렇다면 새로 시작하는 일을 시작하는 또 다른 방법이 있습니까?

작업을 다시 시작하는 이유는 디스크에서 기본 파이썬 코드를 업데이트 한 것이므로 작업을 다시 시작하여 새 코드를 실행하고 싶습니다.

답변

0

파이썬 앱인 에서 업데이트하고 있습니까? 그건 좋은 생각이 아니야 ...

어쨌든 Upstart 작업에서 respawn 스탠자를 사용하여 USR1의 신호 처리기를 TERM의 처리기로 설정 한 다음 USR1 신호를 보내거나 TERM 신호를 보낸다. 그러나 자동 부활이 당신의 특별한 목적을위한 것이 었는지 알지 못한다.