execute shell script that starts background process

Hi,

our development team delivers a start script for a “Listener process”.
It looks like:

#!/bin/sh
BASEDIR=$(dirname $0)
echo “============================================> Starting Global Listener.”
${BASEDIR}/cm listener &

I can start this script manually and everything is fine.

If I start it using the Ansible shell module, the playbook “hangs” and will not return. I tried to use the “command” Module instead, but it is still the same.

I than read about the “async” and “poll” options - but I cannot use async [time] - because the process started will live as long as it is stopped manually.

What is recommended here? Is there a way to use the existing shell script - or do we need to modify that script ?

Any help appreciated,

Torsten

One solution it to write a proper initscript/upstart/systemd
configuration. Another is to use something like
supervisor/daemontools/runit/monit.

But if you want to continue as is with the least change try adding
nohup infront of the listner line, ansible is probably getting stuck
because the listener is not properly detaching.

I just have the same problem,did you got the solution?

在 2014年12月12日星期五 UTC+8下午9:33:27,Torsten Reinhard写道:

Some resources for creating startup scripts:
https://github.com/fhd/init-script-template
https://github.com/jordansissel/pleaserun