우분투 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