다양한 위젯 (다양한 Rails 애플리케이션)을 시작하고 백그라운드에서 실행하는 bash 스크립트를 작성했습니다. 나는 이제 시작 스크립트로 시작된 각 프로세스를 종료시키는 칭찬 스톱 스크립트를 작성하려고 시도하고 있지만 최선의 방법으로 접근하지는 못했습니다.배시 시작 및 중지 스크립트
#!/bin/bash
widgets=(widget1 widget2 widget3) # Specifies, in order, which widgets to load
port=3000
basePath=$("pwd")
for dir in "${widgets[@]}"
do
cd ${basePath}/widgets/$dir
echo "Starting ${dir} widget."
rails s -p$port &
port=$((port+1))
done
가능하다면, 나는 그들이 끔찍하게 신뢰할 수없는 것 때문에 .pid 파일로 PID를 저장 피하려고했다 : 다음
내 시작 스크립트이다. 이것에 접근하는 더 좋은 방법이 있습니까? 다음과 같이 진행 할 수 있습니다, 당신은 rails s -p3002
을 죽이고 싶은 경우에,
-f The pattern is normally only matched against the process name. When -f is set, the full command line is used.
따라서 :
많은 강력한 가능한, 성숙 기존 툴이를위한있다; 저는 개인적으로 영원히 사용합니다 : https://github.com/nodejitsu/forever – jrajav
@ 키유라 말이 맞습니다. 이런 종류의 일을위한 도구. '블루 피트 (Bluepill)'는 떠오르는 생각이다. '.pid' 파일의 사용에 관해서는 무엇을 신뢰할 수 없습니까? – Faiz
@Faiz 프로세스가 예기치 않게 종료되면 PID 파일이 정리되지 않습니다. – senfo