-t オプションを使用すると、SSH 起動スクリプトは失敗します。

-t オプションを使用すると、SSH 起動スクリプトは失敗します。

SSHオプションについて知りたいです-t

次のようにTomcatサーバーを起動しようとすると:

ssh [email protected] -t '~/tomcat/bin/startup.sh'

それからTomcatはいいえ起動スクリプトが実行されていても起動できません。このオプションなしで-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

おすすめ記事