![실행 파일(웹 애플리케이션)을 연중무휴 24시간 실행하고 충돌 시 자동으로 다시 시작하는 방법은 무엇입니까? [폐쇄]](https://linux55.com/image/87662/%EC%8B%A4%ED%96%89%20%ED%8C%8C%EC%9D%BC(%EC%9B%B9%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98)%EC%9D%84%20%EC%97%B0%EC%A4%91%EB%AC%B4%ED%9C%B4%2024%EC%8B%9C%EA%B0%84%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B3%A0%20%EC%B6%A9%EB%8F%8C%20%EC%8B%9C%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
서버에 완전한 독립형 웹 애플리케이션인 실행 파일이 있습니다. 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
애플리케이션에서 서비스를 생성합니다 .