OpenSUSE의 Sys-V 유형 초기화 스크립트에서 startproc, killproc 및 checkproc을 사용하는 이유

OpenSUSE의 Sys-V 유형 초기화 스크립트에서 startproc, killproc 및 checkproc을 사용하는 이유

OpenSUSE 11.4 sysvinit-tools패키지에는 startproc설명서 및 OpenSUSE 설명서에 따라 killprocSys-V 유형 init 스크립트에 사용해야 하는 바이너리가 포함되어 있습니다. 이 바이너리 뒤에 숨겨진 아이디어는 무엇입니까? , , 및 기타 유사한 도구를 사용하여 , 및 와 동일한 기능을 수행할 수 없습니까?checkproc/etc/init.d/skeletonstartprockillproccheckprocnicesudosleep

답변1

먼저 특정 프로그램을 정의해 보겠습니다. 부팅 프로세스

startproc: startproc 및 LSB 변형 start_daemon은 모든 프로세스에서 지정된 실행 파일을 확인하고 프로세스가 없으면 시작합니다. startproc은 프로세스를 검색하기 위해 pid를 사용하지 않지만, 실행 파일을 식별하기 위해 해당 프로그램의 전체 경로를 사용합니다.

프로세스 종료

Killproc은 지정된 실행 파일을 사용하여 모든 프로세스에 신호를 보냅니다. 신호 이름이 지정되지 않으면 SIGTERM 신호가 전송됩니다. Killproc은 pid를 사용하여 프로세스에 신호를 보내는 것이 아니라 해당 프로그램의 전체 경로를 사용하여 실행 파일을 식별합니다.

확인과정

checkproc은 지정된 실행 파일을 사용하여 실행 중인 프로세스를 확인합니다. checkproc은 프로세스를 확인하기 위해 pid를 사용하지 않지만 실행 파일을 식별하기 위해 해당 프로그램의 전체 경로를 사용합니다.

Nice, sudo, sleep은 위 프로그램과 관련된 어떠한 작업도 수행하지 않습니다.

물론, 모든 스크립팅 언어(예: bash) 또는 기타 컴파일된 언어에서 kill/start/checkproc에서 동일한 논리를 실행할 수 있습니다. 그러나 이러한 프로그램의 목적은 이 기능이 필요한 모든 사용자에게 이 기능을 제공하는 것입니다. 따라서 사용자는 다른 배포판과 다른 운영 체제에서 동일한 로직을 작성/재작성할 필요가 없습니다.

관련 정보