내가 그랬어 sudo service ... stop
SSH을 통해 원격으로 컴퓨터를 종료하기 전에,하지만 내가 알고하지 않았다 실현 stop
동기인지 나는 우분투 컴퓨터를 종료 너무 빨리 아니었다면 궁금하네요.
그래서 내 두려움은 잘못된 직감에 기반한 것입니까?
편집 : 내 서비스는 개인 서비스이며 포트에서 물건을 듣고 때때로 데이터베이스에 씁니다. 서비스가 갑작스럽게 중단되면 플러시 할 시간이없는 것이 두렵습니다. stop
플러싱을 처리하지만 시간이 걸린다면 ...
서비스 중지 방법에 따라 다릅니다. 오직 당신 만이 알고 있습니다 : 서비스 시작 및 중지 방법은 서비스 사용자를 위해 문서화하고 이상적으로 제공해야하는 것입니다.
kill
쉘 스크립트에서 호출하여 신호를 전송하여 서비스가 중지 된 경우 이는 비동기입니다. kill
명령 또는 시스템 호출은 프로세스에 신호를 전송하고 즉시 반환합니다. 프로세스가 신호를 만족스럽게 처리했음을 알리기 위해 콜백하는 메커니즘이 없습니다. 따라서 완료되었음을 알리는 다른 방법을 찾아야합니다.
서비스가 파일을 생성 또는 제거하고 제어 스크립트가 해당 파일의 변경 사항을 감시하도록하는 등 다양한 방법이 가능합니다. 그러나 그들은 어색한 경향이 있습니다. 서비스가 완료되었을 때 피드백이 필요한 경우 관련없는 프로세스에서 신호를 보내는 것은 좋은 방법이 아닙니다.
서비스가 stop
Upstart 서비스 설명 의 지시문을 통해 중지 되면 Upstart는 프로세스에 신호를 보냅니다. 그런 다음 Upstarts는 프로세스가 중지 될 때까지 몇 초 동안 기다립니다. Upstart는 프로세스의 부모이므로 프로세스가 종료 될 때 커널에서 알림 (SIGCLD 신호)을받습니다. 이것은 프로세스가 스스로를 백그라운드에 두지 않을 때만 잘 작동합니다. Upstart 서비스 설명은 일반적으로 포크하지 않도록 지시하는 옵션으로 데몬을 호출합니다 (예 :) ssh -D
.
고급 서비스에는 조절 명령이 있습니다. 제한 명령을 호출하면 새 연결 수락이 중지됩니다. 보류중인 모든 연결이 닫히면 서비스는 조절 명령에 긍정적 인 응답을 보낸 다음 종료됩니다. 통신 방법은 일반적으로 Unix 또는 IP 소켓입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다