Local media reports said the assailant was carrying multiple weapons and body armour during the attack [EPA]

A man has killed eight people and wounded another after opening fire in a southern California hair salon, local officials say.

The suspect, 42-year-old Scott Dekraai, was apprehended by authorities at a traffic stop a few miles from the Salon Meritage in Seal Beach, a resort town 48km south of Los Angeles, shortly after the attack.

Local media reports said the assailant, a former member of the US armed forces, was carrying multiple weapons and body armour at the time of the attack.

The assailant was believed to be in the middle of a custody battle with his wife, who is an employee of the salon, according to colleagues.

The shooting is the deadliest ever for Seal Beach, a 25,000-person town.

A witness to the arrest, Aria Lundeen, described the arrest to a local television station: "He proceeded to calmly tell them that there were rifles in the front passenger side ... he said he had a knife in each pocket."

Sergeant Steve Bowles of the Seal Beach police department told local media: "We do feel confident at this
point that we do have the single and only suspect in custody."

Though police are unclear of the motive, a former salon employee, Lidia Sosa, said Dekraai was in a custody battle with his ex-wife, an employee of the hair salon.

The shooting comes a week after three people were killed in a Silicon Valley shooting and a month after three others were killed in a shooting in Carson City, capital of the neighbouring state of Nevada.

Source: Agencies