opscode/mixlib-shellout — pull request #33 by danielsdeleo (2013-12-06 17:38:29+00:00)
Title: Run timeout tests without a subshell

/bin/sh on Ubuntu is dash, which does not support bash's behavior of
using exec to run a command (instead of fork) when possible. This means
that, when given a single string command, instead of an array of command
plus arguments, the process created by fork/exec is dash, and the ruby
program is a child process of dash. When shellout signals the child to
exit after a timeout, it will signal dash instead of the ruby program.

To avoid this issue, the command needs to be given as an Array to avoid
creating a subshell.