실행 파일(웹 애플리케이션)을 연중무휴 24시간 실행하고 충돌 시 자동으로 다시 시작하는 방법은 무엇입니까? [폐쇄]

실행 파일(웹 애플리케이션)을 연중무휴 24시간 실행하고 충돌 시 자동으로 다시 시작하는 방법은 무엇입니까? [폐쇄]

서버에 완전한 독립형 웹 애플리케이션인 실행 파일이 있습니다. SSH를 통해 서버에 로그인하고 파일을 실행하면 웹 사이트가 인터넷에 표시됩니다. 분명히 SSH를 통해 내가 실행하기 때문에 연결을 끊으면 사이트가 충돌합니다.

이 파일을 연중무휴 24시간 실행하고 실패할 경우 다시 시작하는 관용적이고 간단한 방법은 무엇입니까?

이것은 Ubuntu 15이지만 내 질문은 그것에 관한 것이 아닙니다.

저는 타사 솔루션이나 웹 서비스를 사용하고 싶지 않고 표준 Linux 도구와 애플리케이션만 사용하고 싶습니다.

systemd용 서비스를 만들어야 합니까?

답변1

예, 완전한 웹 서버 실행 가능 서비스를 만들어야 합니다. 서비스를 사용하려면 루트가 아닌 계정을 사용하는 것이 좋습니다. 웹 서버가 손상된 경우 발생하는 피해를 제한하려면 필수라고 말하고 싶습니다. 나생각하다1 systemd 필요한 단계를 안내하는 적절한 문서가 있습니다.


1systemd문제가 생기면 뛰지 않겠습니다 ...

답변2

이전 init 시스템에서는 프로세스가 종료될 때 다시 시작하는 역할을 하는 오래된 start-stop-daemon 애플리케이션을 사용할 수 있습니다. 다음을 수행하세요.

start-stop-daemon --start --background --exec /path/to/your/executable

또한 실행 중인 프로세스에 대한 예약 우선순위, IO 우선순위 등을 설정할 수 있습니다.

systemd 지원 시스템에서는 언급한 systemd 서비스 단위를 생성할 수도 있습니다(더 나은 경우). 동일한 작업을 수행하지만 별도의 시작-중지-데몬 호출 대신 systemd 기능을 사용합니다. 자세한 내용은 여기를 참조하세요.https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html

답변3

  • 간단한 방법

/home/user/start_service.sh예를 들어 다음 콘텐츠로 스크립트를 만듭니다.

#!/bin/sh
while true; do
    path/to/service/executable
done

그리고 /etc/rc.local에 추가하세요:

#!/bin/sh -e
su user -c '/home/user/start_service.sh' &
exit 0

그런 다음 스크립트를 수동으로 시작하십시오.

/home/user/start_service.sh

이렇게 하면 웹 애플리케이션에 대해 잊어버릴 수 있습니다. 시스템이 시작되면 자동으로 시작됩니다.

  • 올바른 방법:

다음과 같은 도구를 사용하세요.체계upstart애플리케이션에서 서비스를 생성합니다 .

관련 정보