我想知道 SSH-t
选项。
当我尝试像这样启动 Tomcat 服务器时:
ssh [email protected] -t '~/tomcat/bin/startup.sh'
那么Tomcat就会不是即使启动脚本正在运行,也无法启动。没有这个-t
选项,它就可以工作。
据我了解,这是因为一旦启动脚本完成,连接就会关闭,因此该脚本启动的所有后台进程都将不再存在。
为什么会这样呢?我不太熟悉 shell 会话和作业/进程。
有什么办法可以让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
程序有助于克服此问题。
请参阅此内容以获取有关“不将 tty 分配给 ssh 的好处”的更多信息 https://serverfault.com/questions/593399/what-is-the-benefit-of-not-alaving-a-terminal-in-ssh