No puede engendrar un process de background

Mi equipo está usando Pallet (piense en Puppet in Clojure) para automatizar el aprovisionamiento del server, pero se encuentra con un problema bastante fundamental: Pallet puede ejecutar scripts arbitrarios directamente en máquinas virtuales objective, pero si uno de esos scripts coloca un command en segundo plano, simplemente no se ejecuta Al less, no de la manera en que estamos tratando de ingeniar cosas.

Hemos probado esto usando & y pantalla, siendo este último el ideal, y ninguno de los dos funciona. Por ejemplo, hemos intentado que Pallet ejecute la siguiente secuencia de commands en la máquina virtual de destino …

touch a touch b & touch c 

y todo lo que vemos de forma remota es que existen files a y c. El shell (¿o me refiero al process?) En el que el script principal se ejecutó simplemente se negó a ejecutar 'touch b'. Por otro lado, si ejecutamos este script con una session de terminal común en el mismo host, funciona bien.

Por supuesto, estamos atacando esto desde el ángulo Pallet. Pero en caso de que eso no dé sus frutos, ¿podría alguien decirme en qué tipo de circunstancias un caparazón se rehusaría a ejecutar un process retroactivo, en caso de que nos dé una pista para una solución alternativa?

Estamos usando CentOS 6.5 de 64 bits, aunque espero que eso no sea relevante.

Tratar:

 touch b & disown 

Tal vez los processs secundarios son eliminados por una señal porque la salida del process parental. Use la información de help disown para ver qué hace el desconcierto.

Hay un progtwig nohup separado que hace lo mismo, pero esto funcionaría bajo cualquier shell:

 nohup touch b