Java 프로세스가 실행 중인지 확인하고 그렇지 않은 경우 다시 실행하십시오.

Java 프로세스가 실행 중인지 확인하고 그렇지 않은 경우 다시 실행하십시오.

우분투 15.04에서는 vnc 세션을 통해 Java 애플리케이션을 실행하고 있습니다. 시스템 부팅 중에 시작되는 8개의 정의된 세션이 있습니다. 제 질문은 프로세스가 다양한 vnc 모니터(예: 1 ~ :8)에서 계속 실행되고 있는지 확인하고 지정된 vnc 세션이 실행되고 있지 않음을 감지하면 Java 프로세스를 다시 시작하는 스크립트를 어떻게 만들 수 있느냐는 것입니다.

감사해요

답변1

Ubuntu 15.04는 이러한 요구를 충족시키기 위해 시스템화되었습니다.

다음은 애플리케이션에 작성해야 하는 .service 파일의 예입니다.

[Unit]
Description=Some kind of description

[Service]
Type=simple
ExecStart=<path to your bin with args if needed>
Restart=on-failure

이 파일을 <your-app-name>.service다음 이름 으로 저장 /etc/systemd/system/하고 다음 명령을 실행하여 시작하십시오.

sudo systemctl start <your-app-name>

광고 실행을 실행하려면 서비스를 활성화하세요.

sudo systemctl enable <your-app-name>

다음에서협회위 파일을 필요에 맞게 조정하는 데 필요한 추가 정보를 찾을 수 있습니다.

답변2

runit나는 추천하거나 포장합니다 daemontools. 그들은 매우 유사합니다. 이는 프로세스를 지속적으로 실행하고 자동으로 다시 시작할 수 있는 견고한 도구입니다.

소프트웨어는 inittab 또는 rc 스크립트에서 시작되며 프로세스를 구성 runit하거나 시작하고 모니터링할 수 있습니다.daemontools

모든 프로세스를 세밀하게 제어할 수 있고, 로깅이 내장되어 있으며, 이러한 패키지가 프로세스를 시작하기 때문입니다.그리고이를 기다리면 죽은 프로세스가 자동으로 다시 시작됩니다. 또한 빠른 재시작을 모니터링하고 이러한 경우 설정하도록 선택할 수 있는 매개변수를 기반으로 이를 제한합니다.

이 두 패키지 중 다른 하나는 운영 체제 저장소에서 사용할 수 있습니다(어떤 패키지인지는 언급하지 않았습니다). 둘 다 Debian 및 Ubunut 리포지토리에서 찾을 수 있으며 CentOS에도 리포지토리가 있다는 것을 알고 있습니다.

다음은 이 두 가지 옵션과 기타 옵션을 설명하는 페이지입니다. http://www.skarnet.org/software/s6/why.html

관련 정보