KILLING Mac OS
If kill -9 isn't working, then neither will killall (or even killall -9 which would be more 'intense'). Apparently the chromium process is stuck in a non-interruptible system call (i.e., in the kernel, not in userland) - didn't think MacOSX had any of those left, but I guess there's always one more:-(. This is a BASH shell builtin, to display your local syntax from the bash prompt type: help kill or man kill. Examples List the running process $ ps PID TTY TIME CMD 1293 pts/5 00:00:00 MyProgram Then kill it $ kill 1293 2+ Terminated MyProgram Or to really really kill it $ kill -9 1293 To close an application you can also send an applescript.
Kill a process by specifying its PID, either via a signal or forced termination.
Some shells provide a builtin kill command which is similar or identical to this utility.
The kill utility sends a signal to the processes specified by the pid operand(s). Only the super-user can send signals to other users' processes.
Signal name | Signal value | Effect |
---|---|---|
HUP | 1 | Hangup |
INT | 2 | Interrupt from keyboard |
QUIT | 3 | Quit |
ABRT | 6 | Cancel |
KILL | 9 | Kill signal |
TERM | 15 | Termination signal - allow an orderly shutdown |
STOP | 17,19,23 | Stop the process |
This is a BASH shell builtin, to display your local syntax from the bash prompt type: help kill or man kill
Examples
List the running process
$ ps
PID TTY TIME CMD
1293 pts/5 00:00:00 MyProgram
Then kill it
$ kill 1293
[2]+ Terminated MyProgram
Or to really really kill it
$ kill -9 1293
To close an application you can also send an applescript quit command:
$ osascript -e 'quit app 'safari.app'
'Love never dies a natural death. It dies because we don't know how to replenish it's source. It dies of blindness and errors and betrayals.
It dies of illness and wounds; it dies of weariness, of witherings, of tarnishings' ~ Anais Nin
Related macOS commands:
ctrl+z / ctrl+c - Suspend/Interrupt a program.
ps - List running processes (returns PID).
pkill - Kill processes by a full or partial name.
killall - Kill processes by name.
sigaction(2) -
lsof - List open files.
Some rights reserved
Click here to return to the 'Killing a root process' hint |
i forget what the -9 is for, but it's good in case something doesn't want to be killed, so -9 is kind of like a kill with extreme prejudice. You can always read the man pages...
The -9 flag will terminate the process immediately without giving the process a chance to exit cleanly. Using -HUP (hangup) is 'nicer' in that the program may be able to shut itself down, but OTOH -HUP doesn't always work and you have to resort to -9 anyway.
For more information open your terminal and type 'man kill'.
The usual way to restart a daemon to reconfigure it is to use kill -HUP. Dunno if it works for mysql but I've done this many times for inetd on solaris 2.6.
Your description of -HUP sounds more like the definition of -TERM (-15).
Kill -HUP is sometimes used to tell a process to restart/refresh. Often it does absolutelty nothing. The author of the program decides what to do in response to a -HUP.
Kill -TERM tells a process to shutdown (TERMinate) and gives the process the opportunity to do so cleanly.
kill -KILL (aka kill -9) is a shutdown that doesn't allow the process to shutdown cleanly.
If you type 'kill -l' (that's an 'L' not the number one) you'll get a list of signals. Count them off to find the numeric equivalent.
kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2
It's not by accident that Apple locked it out by default, and that decision
shouldn't be crossed lightly.
In most cases, `sudo` is a far safer tactic. It allows you to run a command
as another user (such as of course the root account), and you're not left in
that other users account where it is all too easy to make a mess of things.
Better by far here would be to find & kill the process in question this way:
That last line is a test to make sure it worked. If it didn't, try
`kill`ing again with numbers increasing from 5 to 9 (shifting from safer
'let it die gracefully' commands to riskier 'alright just shut down NOW'
commands):
It should work by the time you get to -9, but hopefully sooner.
Of course, as another poster noted, this isn't the right way to do it
anyhow. The mysql distribution should have included a shutdown script. If
I knew mysql better I'd quote the command & syntax myself, but the other
poster already said it and, moreover, your mysql documentation should
surely have mentioned how to start & stop the server properly.
Read The Funny Manual!
I stand corrected. Very interesting.
Phillip,
To see all the processes type 'ps aux'. Personally I created/edited the .cshrc file in my home directory to include a line with the following
alias ps 'ps aux'
and once you launch a new terminal window ps will now give you all the details to identify pid's on running processes.
yuri
Surely it's a bad idea to shutdown any kind of database server this way (anybody who's had to force-quit FileMaker will know what i mean...),
Has anybody tried:
cd /usr/local/mysql/bin
./mysqladmin shutdown
If anyone finds some solution I'd love to hear about it. For now it looks as if the only SAFE way to shut it down is to turn off the automatic startup of mysql and restart the computer.
sudo kill process id
Mysql on OS X is ugly. Theoretically you should be able to shut it down cleanly with the
shutdown command from within mysqladmin, but that doesn't sem to work.
I have seen it written that the only clean way to deal with the problem is to
keep the shell which launched the safe daemon, interrupt it with CTL-Z, do
a ps and kill the spawned daemon brood, then kill the broodmaster.
Please correct me if i am wrong. I am waiting for a package which one can have
real confidence in. I have installed mysql on linux, linux ppc and OS X from original
sources. It integrates nicely into the redhat linux daemon start/stop runlevel scheme,
but i don't know how this issue is handled by Mac OS X.
Killing Moss With Salt
Sending a server process a normal kill signal first is a good idea, lets it know that
it should exit gracefully and gives it a chance to behave like a gentleman :)
By the way, mysql is a very bad citizen, see my post below.
Edmund