2016-03-23 175 views
1

杀死一个任务的最好方法是什么?我将kafka作为常规可执行文件运行,而不是作为服务运行。当我向它发送杀戮时,需要一段时间才能完成并关闭。在发送kill命令以确保服务实际停止之前,我希望能够继续等待。在Ansible中杀死一个任务

到目前为止,这是我的,我不知道如何可靠地做到这一点。

--- 
- name: Stopping Kafka 
    command: "bin/kafka-server-stop.sh config/server.properties" 
    args: 
    chdir: "{{base_apps}}/kafka/kafka_2.11-0.9.0.1" 
    ignore_errors: yes 

感谢

+0

也许尝试把“nohup斌/ kafka-server-stop.sh配置/ server.properties” –

+0

不会马上踢出去吗? – browskie

回答

5

这可以用wait_for模块可能解决。

随着wait_for模块,可以做这样的事情:

--- 
- name: Stopping Kafka 
    command: "bin/kafka-server-stop.sh config/server.properties" 
    args: 
    chdir: "{{base_apps}}/kafka/kafka_2.11-0.9.0.1" 
    ignore_errors: yes 

# wait until the lock file is removed 
- wait_for: path=/var/lock/kafka.lock state=absent 

这样Ansible将继续与锁文件已被删除后,才发挥作用。 wait_for模块提供了一些其他检查条件,请查看模块文档。