나는초기화 스크립트- /etc/init.d/myservice
, 다음을 포함한 여러 프로세스를 시작합니다.CLI 프로세스. 이 CLI 프로세스에서 다음을 추가했습니다.주문하다서비스를 다시 시작하는 데 사용할 수 있습니다(다시 시작우리 스스로- 일종의).
내가 시도한 것 - 스크립트(CLI 명령에서 생성됨)에서 실행 sudo service myservice restart
. restart
그러나 stop;start
이것은 작동하지 않습니다! 즉 stop
, 이런 일이 발생하더라도 부분을 실행하는 동안 start
스크립트는 종료됩니다(신호 없이 간단하게 EXIT
).
nohup
등등의 조합을 시도했지만 disown
작동하지 않는 것 같습니다! 종료하지 않고 이 작업을 수행하는 방법을 잘 모르겠습니다 restart
. 추가 디버깅을 위한 포인터나 해결 방법이 있습니까?
결론적으로:
myservice
-> 다음을 포함하여 많은 프로세스를 생성합니다.명령줄 인터페이스restart
CLI -> 호출하는 명령이 있습니다.스크립트- 스크립트하다
sudo service myservice restart
- 추가 정보 -
저는 우분투 12.04를 사용하고 있는데,upstart
답변1
꽤 오랫동안 검색해 왔지만 이 SuperUser Q&A에서 다음과 같은 제목의 솔루션을 찾았습니다.터미널에서 프로세스를 완전히 분리하는 방법은 무엇입니까?, 여기에 내 질문을 게시한 후.
| at now
답변2
서비스를 다시 시작하기 전에 제대로 중지될 때까지 몇 초 정도 기다려야 할 수도 있습니다. 다음 줄을 사용하여 스크립트를 지연시킬 수 있습니다
# waiting for 5 seconds
sleep 5
자세한 내용은 여기에서 확인하실 수 있습니다 -http://www.cyberciti.biz/faq/linux-unix-sleep-bash-scripting/