On Tuesday, May 22, 2018 at 1:38:08 AM UTC-5, Thomas Müller wrote:
>
> Hi
>
> If I define:
>
> exec { '/bin/sleep 300 &':
> timeout => 10,
> }
>
> and run it with puppet apply: it happily starts the sleep, backgrounds it
> and finishes - leaving the sleep in the background alive.
>
> Is this behaviour as expected?
>
It's what *I* would have expected, at any rate.
> I personally expected that puppet would ensure all started processes are
> killed if once the exec resource finishes.
>
I'm not sure why someone would expect that. The documentation of the Exec
resource type does not describe any such behavior, and it seems pretty
arbitrary considering how generic Exec resources are. Why shouldn't one be
able to use an Exec to launch a background process? Why should Puppet
forcibly prevent such a background process from outliving the application
of the Exec that starts it, or even the whole catalog run? What if that
was the whole point of the Exec in the first place?
Perhaps it's a matter of interpretation. If the command of an Exec
expresses starting a process in the background, then its job is
successfully completed when the background job is started. If you want an
Exec to run a command to completion, then have it run that command in the
foreground (the usual case). Through no coincidence at all, this mirrors
the behavior of background jobs launched by a non-interactive shell.
John
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/6d80c125-e2b2-4b04-84a3-65f9f45ac524%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.