웹사이트 검색

서버 프로그램을 다시 시작하기 위해 Bash 스크립트를 작성하는 방법


가장 중요한 프로그램이 가능한 한 온라인 상태를 유지하도록 하려면(서버 충돌 또는 재부팅 후에도) 짧은 bash 스크립트를 만들어 프로그램이 실행 중인지 확인하고 실행 중이 아니면 실행할 수 있습니다. cron을 사용하여 스크립트가 정기적으로 실행되도록 예약하면 프로그램이 다운될 때마다 다시 시작되도록 할 수 있습니다.

배쉬 스크립트

이 프로세스의 첫 번째 단계는 스크립트 자체를 만드는 것입니다. 매우 미묘한 방식으로 가상 사설 서버에서 응용 프로그램을 시작하고 모니터링할 수 있는 기능이 있는 upstart, Supervisor 및 monit와 같은 다양한 프로그램이 있습니다. 이 bash 스크립트는 단순히 켜기 스위치를 제공합니다.

다음은 아파치를 발견하면 시작하는 샘플 스크립트입니다.

nano launch.sh
#!/bin/sh

ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
        /etc/init.d/apache2 start > /dev/null
fi

스크립트를 저장한 후에는 실행할 수 있도록 실행 권한을 부여해야 합니다.

chmod +x launch.sh

Apache는 필요한 응용 프로그램으로 대체할 수 있습니다. 다양한 응용 프로그램에 대한 스크립트를 설정하려는 경우 각 응용 프로그램에 대한 새 스크립트를 만들어 cron 파일의 자체 줄에 배치할 수 있습니다.

크론 설정

스크립트를 손에 들고 실행할 일정을 설정해야 합니다. cron 유틸리티를 사용하면 스크립트가 실행되어야 하는 간격을 예약할 수 있습니다. cron 파일을 열어 시작합니다.

crontab -e

Cron은 처음에 타이밍 시스템이 어떻게 작동하는지에 대해 자세히 설명합니다.

스크립트 실행 빈도를 알고 나면 해당 줄에 작성할 수 있습니다.

스크립트가 cron에서 실행할 수 있는 가장 자주는 매분입니다. 이러한 작은 증분을 설정하려면 다음 템플릿을 사용할 수 있습니다.

* * * * * ~/launch.sh

5분마다 다음과 같이 설정됩니다.

*/5 * * * * ~/launch.sh

더보기

이 간단한 스크립트를 설정하면 어떤 이유로 프로그램이 종료된 후에도 프로그램이 계속 시작됩니다. 이것은 프로그램이 중단되는 가장 긴 시간이 cron 구성에서 지정한 시간 간격 동안임을 보장하므로 편리합니다.

조금 더 미묘한 프로그램이 필요한 경우 여러 서버 모니터링 프로그램(Monit) 중 하나를 사용하여 시작 세부 정보를 설정할 수 있습니다.