You don't say whether you're running wicd-gtk or wicd-curses? It sounds like GTK since you mention "button".
wicd-gtk is a single process (Python session). Sorry to knotech, but you're just wrong. There are daemon and monitor processes, but they are supposed to remain running at all times and it is extremely unlikely that there will be multiple copies, and they won't be called wicd-client. Just for completeness, the daemon (and monitor) can be started by running wicd-client, but this will only happen if they aren't already running and only after you enter your gksudo password. If you kill the daemon then your networks will no longer be managed, they won't automatically (re-)connect, and you may be left without a connection.
So wicd-gtk starts one or both, or neither, of a window and a tray icon. Typing just wicd-gtk (or typing wicd-client which will run your installed type of wicd client) should start both. wicd-gtk --tray will start just the tray, wicd-gtk --no-tray just the window. wicd-gtk --only-notifications will start neither, just spawning a process which can give you notification bubbles when your networks are connected or disconnected.
Pressing the Quit button in the window closes the window. It does not close the tray icon, so if you started with just wicd-gtk (or wicd-gtk --tray and later opened the window) then you will be left with a tray icon. This is known as "close to tray" behaviour and is very common, although it might be nicer for some people if it could be configured not to do it. If you started with wicd-gtk --no-tray then the whole thing will close when you press the Quit button. If you do have a tray icon (do you?) then you can close the whole thing from the tray icon context menu. Or with ctrl-C from wherever you started it.
If you don't have a tray icon and don't want one then start with wicd-gtk --no-tray. Then your client will close when you press the Quit button. If you want a tray icon but want the whole thing to go away when you press the Quit button in the window then at the moment you're out of luck.
Thanks @DavidPostill, is that your way of saying my answer is formatted wrong? – blanket_cat – 2014-08-26T06:53:48.157
Ha! okay, thanks. I'm not used to people being super nice on the internet. – blanket_cat – 2014-08-26T06:58:50.300
1I'm more interested in an automatic solution. I don't want to have to remember to kill these processes every time I close wicd. Is this really the design the authors had intended? – nullUser – 2014-08-26T13:32:32.487
The best solution I can think of is to take something like the while structure outlined in the solution here, and set it to wait for your gui to die, then add a line that instructs the script to kill the remaining processes, if the GUI is no longer alive. http://stackoverflow.com/questions/1058047/wait-for-any-process-to-finish
– blanket_cat – 2014-08-27T02:47:13.713