One of the greatest things Apple ever did was to decide to bring OSX to the macintosh. OSX is based on the Unix operating system. Specifically, it's based on the NeXTSTEP OS which was a very special version of Unix tailored by Steve Job's NeXT corporation.
All versions of Unix allow "Pre-Emptive MultiTasking" which means many different processes can by many different users at the same time. Apple OS X, Linux, Sun Solaris, Cray Unicos, IBM AIX, HP uX, and any other version of Unix will support this feature. The wonderful thing about this is that you can have one user running one process and another user running another process and they won't normally interfere with each other.
You actually can see this if you open a Terminal. On your Mac, open Terminal and type "ps". The "ps" command will show you all the processes that are running.
Every process has a "Process ID" that is given to it. It also will have a parent process and the process ID of the parent is shown as well.
Though, sometimes, things go wrong. Sometimes a process will find a way to hog system resources or behave erratically. Sometimes, a process would go so wrong, that you had to force it to die. For this reason, Unix needed a command to talk to send messages to the process, and, if necessary, shut the process down. So, the "kill" command was created.
Kill takes a "signal" which is sent to the process. If you just type "kill" and your process ID, that signal will be "SIGTERM" which tells the process to terminate. Though, if the process is really wedged tight, that won't be enough. So, there is a more lethal and powerful signal, "SIGKILL" which can not be ignored. In unix, each signal has a number. For "SIGKILL" the number is 9 so a SIGKILL is usually referred to as a "kill -9".
When you are doing a "Force Quit" on the Mac, this is exactly what you are doing. It's a "kill -9" wrapped in a nice user interface. Though, if you wanted to play Unix Nerd, you could do the same thing from a shell.
The Kill Command
SIGNAL | NUMBER | DEFAULT | EVENT | Explanation |
HUP | 1 | Exit | Hangup | Tells the program to reread all of its configuration files. |
INT | 2 | Exit | Interrupt | |
QUIT | 3 | Core | Quit | Terminates Program and leaves a core file. |
ILL | 4 | Core | Illegal Instruction | |
TRAP | 5 | Core | Trace/Breakpoint Trap | |
ABRT | 6 | Core | Abort | |
EMT | 7 | Core | Emulation Trap | |
FPE | 8 | Core | Arithmetic Exception | |
KILL | 9 | Exit | Killed | Cannot be caught or ignored. |
BUS | 10 | Core | Bus Error | When used with Celpaint, will cause it to save out the planes. |
SEGV | 11 | Core | Segmentation Fault | Will cause Softimage, Maya and Photoshop to save out and then exit. |
SYS | 12 | Core | Bad System Call | |
PIPE | 13 | Exit | Broken Pipe | |
ALRM | 14 | Exit | Alarm Clock | |
TERM | 15 | Exit | Terminated | Terminates, but is more gentle. It gives the process a chance to clean up. This is the default. |
USR1 | 16 | Exit | User Signal 1 | Causes the font server to re read the configuration file. |
USR2 | 17 | Exit | User Signal 2 | Causes the font server to fluch the font cache. |
CHLD | 18 | Ignore | Child Status Changed | |
PWR | 19 | Ignore | Power Fail/Restart | |
WINCH | 20 | Ignore | Window Size Change | |
URG | 21 | Ignore | Ugrent Socket Condition | |
POLL | 22 | Exit | Pollable Event | |
IO | 22 | Exit | input/output possible signal | |
STOP | 23 | Stop | Stopped (Signal) | |
TSTP | 24 | Stop | Stopped (User) | |
CONT | 25 | Ignore | Continued | |
TTIN | 26 | Stop | Stopped (tty input) | |
TTOU | 27 | Stop | Stopped (tty output) | |
VTALRM | 28 | Exit |
No comments:
Post a Comment
If you would like to reach out to the author directly, please email mschnitt@gmail.com