How to stop server (hg serve) ?
Christian Ebert
blacktrash at gmx.net
Mon Nov 2 09:13:45 CST 2009
* Greg Ward on Monday, November 02, 2009 at 09:44:28 -0500
> On Mon, Nov 2, 2009 at 6:34 AM, Christian Ebert <blacktrash at gmx.net> wrote:
>> $ sw_vers
>> ProductName: Mac OS X
>> ProductVersion: 10.5.8
>> BuildVersion: 9L30
>> $ hg serve --pid-file test.pid &
>> [1] 5417
>> $ cat test.pid
>> 5417
>> $ kill -9 `cat test.pid`
>> [1]+ Killed hg serve --pid-file test.pid
>
> I'm glad the pid file works on OS X, but you really shouldn't use
> "kill -9" as a first resort. And explaining it like this will make
> newbies think that "kill -9" is the right thing to do. In general,
> it's not.
>
> Consider a server that maintains data structures on disk. A
> well-written server will intercept signals (eg. Ctrl-C or vanilla
> "kill" (SIGTERM)) and shut itself down in a orderly fashion.
> Transactions will be aborted or committed as appropriate, locks will
> be released, etc.
>
> However, SIGKILL (aka kill -9) cannot be intercepted by the process
> being killed. That's the whole point of it. So if you "kill -9" a
> well-behaved server, you are making it impossible for it to shutdown
> cleanly (abort transactions, release locks, etc.). That leaves a mess
> for the next user of those data structures to deal with.
>
> The usual way to shutdown a server process on Unix is to send it a
> SIGTERM (kill <pid>). If it is still running after a few seconds,
> *then* you pull out the big guns and send SIGKILL (kill -9 <pid>).
You are right of course. I was tempted by the immediate output of
kill -9 which sort of proved that --pid-file works.
c
--
Wer auf sein Elend tritt, steht höher.
_HÖLDERLIN: H Y P E R I O N_ --->> http://www.blacktrash.org/hyperion/
More information about the Mercurial
mailing list