Ansible 2.2の時点で、この問題に対する適切な解決策があります。
ハンドラーは一般的なトピックを「リッスン」することもでき、タスクは次のようにそれらのトピックに通知できます。
handlers:
- name: restart memcached
service: name=memcached state=restarted
listen: "restart web services"
- name: restart apache
service: name=apache state=restarted
listen: "restart web services"
tasks:
- name: restart everything
command: echo "this task will restart the web services"
notify: "restart web services"
この使用により、複数のハンドラーをトリガーするのがはるかに簡単になります。また、ハンドラーを名前から切り離し、プレイブックやロール間でハンドラーを簡単に共有できるようにします。
特に質問に対して、これは機能するはずです:
- name: Check if restarted
shell: check_is_started.sh
register: result
listen: Restart processes
- name: Restart conditionally step 2
service: name=service state=restarted
when: result
listen: Restart processes
タスクでは、「プロセスの再起動」を介してハンドラーに通知します
http://docs.ansible.com/ansible/playbooks_intro.html#handlers-running-operations-on-change