PHP code example of mougrim / pcntl-signal-handler

1. Go to this page and download the library: Download mougrim/pcntl-signal-handler library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

mougrim / pcntl-signal-handler example snippets



// в начале подключаем SignalHandler, что бы был вызван declare(ticks = 1);
nalExample = new SignalExample($signalHandler);
$signalExample->run();


class SignalExample
{
	private $signalHandler;

	public function __construct(Mougrim_Pcntl_SignalHandler $signalHandler)
	{
		$this->signalHandler = $signalHandler;
	}

	public function run()
	{
		// добавляем обработчик сигнала SIGTERM
		$this->signalHandler->addHandler(SIGTERM, array($this, 'terminate'));
		// добавляем обработчик сигнала SIGINT
		$this->signalHandler->addHandler(SIGINT, array($this, 'terminate'));

		while(true)
		{
			$this->signalHandler->dispatch();

			// итерация цикла
			echo "итерация цикла\n";
			usleep(300000);
		}
	}

	public function terminate()
	{
		// послать SIGTERM детям
		// ...
		echo "terminate\n";

		exit(0);
	}
}


// в начале подключаем SignalHandler, что бы был вызван declare(ticks = 1);
signalExample = new SignalExample53($signalHandler);
$signalExample->run();


class SignalExample53
{
	private $signalHandler;

	public function __construct(\Mougrim\Pcntl\SignalHandler $signalHandler)
	{
		$this->signalHandler = $signalHandler;
	}

	public function run()
	{
		// добавляем обработчик сигнала SIGTERM
		$this->signalHandler->addHandler(SIGTERM, array($this, 'terminate'));
		// добавляем обработчик сигнала SIGINT
		$this->signalHandler->addHandler(SIGINT, array($this, 'terminate'));

		while(true)
		{
			$this->signalHandler->dispatch();

			// итерация цикла
			echo "итерация цикла\n";
			usleep(300000);
		}
	}

	public function terminate()
	{
		// послать SIGTERM детям
		// ...
		echo "terminate\n";

		exit(0);
	}
}