-t 옵션을 사용하면 SSH 시작 스크립트가 실패합니다.

-t 옵션을 사용하면 SSH 시작 스크립트가 실패합니다.

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

관련 정보