프로세스가 실행 중인지 확인하고 그렇지 않은 경우 시작하는 가장 우아한 방법은 무엇입니까?


8

나는 이것을 bash에서 여러 가지 방법으로 엉망으로 만들었으며, 이것을 pgrep program > /dev/null || program하는 가장 짧고 가장 우아한 방법 인 것으로 나타났습니다 . 이것보다 더 좋은 방법이 있습니까?

답변:


9

을 사용하면 pgrep본인 이외의 다른 프로그램과 일치 할 수 있습니다. 올바른 프로그램과 일치 시키려면 pidof대신 사용하십시오.

start-stop-daemonPID 파일과 함께 사용할 수도 있습니다 . start-stop-daemon프로그램이 실행 중인지 확인하고 필요한 경우 시작합니다. 이것이 대부분의 init 스크립트에서 사용되는 것입니다.


start-stop-daemon의 man 파일을 살펴보면 멋지게 보입니다. 통찰력에 감사드립니다!
사람

1
당신은 또한에 관심이있을 수있는 /lib/lsb/init-functions대부분의 init을 스크립트와 같은 래퍼 함수를 사용하는 구문 분석 라이브러리, start_daemon또는 pidofproc.
ℝaphink

1
[ -z `pidof program` ] || echo "program runing"
# or 
[ -z `pidof program` ] && OtherProgram 

이 명령으로 수행 할 작업을 OP에 설명해 주시겠습니까?
nanofarad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.