Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!


Click here to return to the 'DON'T NEED ROOT!' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
DON'T NEED ROOT!
Authored by: babbage on Apr 20, '01 02:51:11PM
Having access to the root account is a sharp & powerful double-edged sword.
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:


% ps ax | grep mysql
[any processes show up, including possibly the grep]
% sudo kill [mysql process number]
Password: [enter admin password]
% ps ax | grep mysql



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):


% ps ax | grep mysql
% sudo kill -5 [mysql process number]
[note that you won't be asked for the password again,
if you're within 5 minutes of first trying `sudo`.]

% ps ax | grep mysql
% sudo kill -6 [mysql process number]
% ps ax | grep mysql
% sudo kill -7 [mysql process number]
% ps ax | grep mysql
% sudo kill -8 [mysql process number]
% ps ax | grep mysql
% sudo kill -9 [mysql process number]
% ps ax | grep mysql


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!

[ Reply to This | # ]

DON'T NEED ROOT! + bad advice
Authored by: robh on Apr 20, '01 06:20:19PM
Part of the previous post is BAD advice. Doing a kill -5, -6, -7, -8, before resorting to -9 is nonsense. To kill off a process, try -15 then -9. Each numeric argument corresponds to a different signal. The 'kill' command is a misnomer since it's a tool to send signals to processes, and only one of the signals happens to be '-9', the kill signal. For example, kill -8 is equivalent of telling the process it has experienced a floating-point exception and you want a core dump created (a huge debugging file, useless in this context). Here's a list of signals, their numbers, names and descriptions. The info came from 'man sigaction', I added the numbers for clarity.
    NAME            Default Action          Description
1   SIGHUP          terminate process       terminal line hangup
2   SIGINT          terminate process       interrupt program
3   SIGQUIT         create core image       quit program
4   SIGILL          create core image       illegal instruction
5   SIGTRAP         create core image       trace trap
6   SIGABRT         create core image       abort(2) call (formerly SIGIOT)
7   SIGEMT          create core image       emulate instruction executed
8   SIGFPE          create core image       floating-point exception
9   SIGKILL         terminate process       kill program
10  SIGBUS          create core image       bus error
11  SIGSEGV         create core image       segmentation violation
12  SIGSYS          create core image       system call given invalid argument
13  SIGPIPE         terminate process       write on a pipe with no reader
14  SIGALRM         terminate process       real-time timer expired
15  SIGTERM         terminate process       software termination signal
16  SIGURG          discard signal          urgent condition present on socket
17  SIGSTOP         stop process            stop (cannot be caught or ignored)
18  SIGTSTP         stop process            stop signal generated from keyboard
19  SIGCONT         discard signal          continue after stop
20  SIGCHLD         discard signal          child status has changed
21  SIGTTIN         stop process            background read attempted from control terminal
22  SIGTTOU         stop process            background write attempted to control terminal
23  SIGIO           discard signal          I/O is possible on a descriptor (see fcntl(2))
24  SIGXCPU         terminate process       cpu time limit exceeded (see qsetrlimit(2))
25  SIGXFSZ         terminate process       file size limit exceeded (see setrlimit(2))
26  SIGVTALRM       terminate process       virtual time alarm (see setitimer(2))
27  SIGPROF         terminate process       profiling timer alarm (see setitimer(2))
28  SIGWINCH        discard signal          Window size change
29  SIGINFO         discard signal          status request from keyboard
30  SIGUSR1         terminate process       User defined signal 1
32  SIGUSR2         terminate process       User defined signal 2


[ Reply to This | # ]
DON'T NEED ROOT! + bad advice
Authored by: babbage on Apr 20, '01 07:05:47PM
:)

I stand corrected. Very interesting.

[ Reply to This | # ]