This example forks off a daemon process with a signal handler.
Example #1 Process Control Example
<?php
pcntl_async_signals(true);
$pid = pcntl_fork();
if ($pid == -1) {
die("could not fork");
} else if ($pid) {
exit(); / we are the parent
} else {
/ we are the child
}
/ detach from the controlling terminal
if (posix_setsid() == -1) {
die("could not detach from terminal");
}
/ setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
/ loop forever performing tasks
while (1) {
/ do something interesting here
}
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
/ handle shutdown tasks
exit;
break;
case SIGHUP:
/ handle restart tasks
break;
default:
/ handle all other signals
}
}
?>
Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!
Check out: eBank.nz (Art Generator) |
Netwrck.com (AI Tools) |
Text-Generator.io (AI API) |
BitBank.nz (Crypto AI) |
ReadingTime (Kids Reading) |
RewordGame |
BigMultiplayerChess |
WebFiddle |
How.nz |
Helix AI Assistant