Goodnight was born in Macoupin County, Illinois, northeast of St. Louis, Missouri, the fourth child of Charles Goodnight and the former Charlotte Collier.
At the outbreak of the Civil War, he joined the Confederate States Army.