puppetlabs/puppet — pull request #1769 by wfarr (2013-07-15 19:26:11+00:00)
Title: [21770] Add basic SIGINFO support to Puppet::Transaction

If the user sends SIGINFO to the Puppet process during
the evaluation of a resource, Puppet will generate an
INFO level message with the type and title of the resource
currently being applied.

Below is an example of what this looks like in practice.
Please note I've added whitespace for emphasis, and in use
none of these empty lines are present.

```
~ $ puppet apply -e ' exec { ["/bin/sleep 20", "/bin/sleep 10"]: } '

load: 1.50 cmd: ruby 86469 running 1.59u 0.29s
Evaluating resource: exec[/bin/sleep 10]

Notice: /Stage[main]//Exec[/bin/sleep 10]/returns: executed successfully

load: 1.46 cmd: ruby 86469 running 1.59u 0.30s
Evaluating resource: exec[/bin/sleep 20]

Notice: /Stage[main]//Exec[/bin/sleep 20]/returns: executed successfully
Notice: Finished catalog run in 30.10 seconds
```

This functionality is geared at users who may not be running Puppet
in debug mode when they encounter slow resource application times.
While strace/dtrace can provide context into what resource is
currently being applied, that's not terribly user-friendly.
SIGINFO allows users to, on supported systems, simply invoke
`-T` during resource application to yield any long-running
resource apply phases.

SIGINFO is typically a BSD and BSD-derivative platform signal.
This change does not introduce breakages for non-BSD, POSIX systems;
nor does it introduce breakages for the Windows platform.

ref: http://projects.puppetlabs.com/issues/21770

/cc @jfryman @rodjek