SSH 옵션에 대해 알고 싶습니다 -t
.
다음과 같이 Tomcat 서버를 시작하려고 하면:
ssh [email protected] -t '~/tomcat/bin/startup.sh'
그러면 톰캣은아니요시작 스크립트가 실행 중인데도 시작할 수 없습니다. 이 옵션 없이도 -t
작동합니다 .
내가 이해한 바로는 시작 스크립트가 완료되면 연결이 닫히고 스크립트에 의해 시작된 백그라운드 프로세스가 더 이상 존재하지 않기 때문입니다.
왜 그럴까요? 저는 쉘 세션과 작업/프로세스에 익숙하지 않습니다.
Tomcat을 시작하는 방법이 있습니까?그리고이 -t
옵션을 사용하시겠습니까? (안타깝게도 Ansible 때문에 이것을 사용해야 합니다.)
답변1
Ansible을 사용하면 스크립트를 직접 호출하지 않고도 tomcat 서비스를 시작할 수 있습니다.
예: tomcat 서비스 핸들러에는 Roles/tomcat/handler/main.yml 정의가 있습니다.
- name: restart tomcat
service: name=tomcat state=restarted
실제 Tomcat 서비스 시작 작업은roles/tomcat/tasks/main.yml에 있습니다.
- name: Configure Tomcat users
template: src=tomcat-users.xml dest=/usr/share/tomcat/conf/
notify: restart tomcat
- name: Start Tomcat
service: name=tomcat state=started enabled=yes
서비스 모니터링 시스템의 일부가 아닌 임의의 서비스를 시작하기 위해 자체 스크립트를 실행하려는 경우 supervisor
프로그램을 사용하면 이 문제를 극복하는 데 도움이 될 수 있습니다.
SSH에 tty를 할당하지 않을 때의 이점에 대한 자세한 내용은 이 항목을 참조하세요. https://serverfault.com/questions/593399/what-is-the-benefit-of-not-alaving-a-terminal-in-ssh