Put the onion and oil in a large pan and fry over a fairly high heat for 3-4 mins.
Add the garlic and mince and fry until they both brown.
Add the mushrooms and herbs, and cook for another couple of mins.
Stir in the tomatoes, beef stock, tomato ketchup or purée, Worcestershire sauce and seasoning.
Bring to the boil, then reduce the heat, cover and simmer, stirring occasionally, for 30 mins.
Meanwhile, cook the spaghetti in a large pan of boiling, salted water, according to packet instructions.
Drain well, run hot water through it, put it back in the pan and add a dash of olive oil, if you like, then stir in the meat sauce.
Serve in hot bowls and hand round Parmesan cheese, for sprinkling on top.