system's "kill <pid>" signal
Basile B. via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Nov 4 23:17:51 PDT 2016
On Saturday, 5 November 2016 at 02:24:00 UTC, Konstantin
Kutsevalov wrote:
> Hi,
>
> is there a way to catch system signal of "kill" command or
> "shutdown"?
During the Run-time:
====================
You can register a signal callback, like in this sample (hit
CTRL+C once running in a terminal):
import std.stdio;
import core.sys.posix.signal;
bool doQuit;
extern(C) void handler(int num) nothrow @nogc @system
{
printf("Caught signal %d\n",num);
doQuit = true;
}
void main(string[] args)
{
signal(SIGINT, &handler);
while(true)
{
import core.thread;
Thread.sleep(dur!"msecs"(50));
if (doQuit)
break;
}
}
After termination:
==================
if (tryWait(PID)[0] == true) then the value carried by
tryWait(PID)[1] will tell you if the process has exited because
of a signal whatever it's, e.g SIGKILL, SIGTERM, SIGINT, ...
More information about the Digitalmars-d-learn
mailing list