Using predictable names for your kill list and glist is risky... an attacker could use this to kill off necessary processes on your system.
You don't need all those signals sent by so many kills. It's probably better practice to send SIGTERM and wait a few seconds for programs to terminate gracefully, and then send SIGKILL if they are not dead already. You should check it's the same process, else you might find that a process terminates with SIGTERM, and another (important) process starts with that PID, and then you kill that with SIGKILL which you might not want to do.
The style looks OK. I think it's more typical to not have a ; at the end of the line of you move do to the next line in for statements. i.e. do this:
for f in *; do
for f in *
I don't think it really matters though.
I generally prefer $() to `backticks` to take the output from a program. This is because backticks can be misread as regular quotes with some fonts, and they are not nestable.
In the first for loop, you don't need to use ls to list the files - the pattern itself will be expanded by the shell. You can save yourself a process invocation this way.
Finally, inside the first for loop you are using the value of the i variable - you should quote this in "double quotes". This is because the pattern you use might match files with spaces in them... in this case you have to quote the variable when you use it.