Squeak SmalltalkJoker Squeak Smalltalk : System : prevnext Essential Processes

> 1) how do I determine what threads are vital for running squeak?

ProcessBrowser nameAndRulesFor: aProcess

will return a 3-element Array with: (1) a descriptive name (2) a Boolean 
which is true if you can safely stop or kill aProcess (3) a Boolean which 
is true if you can safely debug aProcess

> 2) how do I kill ALL the threads running (except the one executing my
> command line script, of course)?

There are some threads you don't want to kill. Trust me on this. And in 
any event, these are not the ones that are likely to be causing you 
problems. Try this first:

"to kill all the non-essential processes:"

Process allInstancesDo: [ :p | | rules | rules := ProcessBrowser 
nameAndRulesFor: p. rules second ifTrue: [ p terminate ]].

SoundPlayer playerProcess ifNotNilDo: [ :p | p terminate ].

> 3) how and in what order do I start the needed ones again?
>

The above shouldn't require restarting anything special.