我刚刚开始使用Ansible,但我在运行服务器时遇到了问题。
我有一台可以使用java -jar target/server-1.0-SNAPSHOT.jar
启动的服务器。但是,这将启动服务器并继续运行永久显示输出,因此Ansible永远不会完成。
这是我尝试过的永远不会完成的事情:
- name: Start server
command: chdir=~/server java -jar target/server-1.0-SNAPSHOT.jar
这样做的正确方法是什么?
答案 0 :(得分:3)
按照@udondan的建议创建服务,或使用异步任务启动服务器。 http://docs.ansible.com/ansible/playbooks_async.html
答案 1 :(得分:2)
正如@ Petro026建议的那样,您的选择是异步任务或创建服务。
我强烈建议不要使用异步任务方法。这是一个非常脆弱的解决方案:
您最好的选择是为其创建服务,可能最简单的方法是使用像supervisord这样的流程控制系统,ansible支持该流程控制系统。
来自主管文档:
Supervisor是一个允许其用户监控的客户端/服务器系统 并在类UNIX操作系统上控制许多进程。
答案 2 :(得分:0)
将其放入PID并将输出发送到nohup。
这样的事情:
nohup java -jar target / server-1.0-SNAPSHOT.jar&
在你的剧本中:
如果你想杀死进程kill -9 #numerofpid。