# Functions
NewCommand create a Command.
Run runs commands in parallel from channel chCmdStr, and returns a Command channel, and a done channel to ensure safe exit.
Run4Output runs commands in parallel from channel chCmdStr, and returns an output text channel, and a done channel to ensure safe exit.
# Variables
pid_numSecondsSinceEpoch.
ErrCancelled means command being cancelled.
ErrTimeout means command timeout.
Log is *logging.Logger.
16K.
1M.
Verbose decides whether print extra information.
# Structs
Command is the Command struct.
ImmediateLineWriter is safe to use concurrently.
from https://softwareengineering.stackexchange.com/questions/177428/sets-data-structure-in-golang.
Options contains the options.