PHPackages                             mshavliuk/mshavliuk-signal-events-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. mshavliuk/mshavliuk-signal-events-bundle

ActiveSymfony-bundle[CLI &amp; Console](/categories/cli)

mshavliuk/mshavliuk-signal-events-bundle
========================================

Symfony bundle to handle process signals (kill, ctrl+c etc.)

1.0.0(6y ago)05MITPHPPHP ~7.1CI failing

Since Jun 3Pushed 5y agoCompare

[ Source](https://github.com/mshavliuk/mshavliuk-signal-events-bundle)[ Packagist](https://packagist.org/packages/mshavliuk/mshavliuk-signal-events-bundle)[ Docs](https://github.com/mshavliuk/mshavliuk-signal-events-bundle)[ RSS](/packages/mshavliuk-mshavliuk-signal-events-bundle/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (12)Versions (4)Used By (0)

MshavliukSignalEventsBundle
===========================

[](#mshavliuksignaleventsbundle)

[![Latest Stable Version](https://camo.githubusercontent.com/31580cc7f3faebb0b8c45c9358b3b5719ea2b3da6131644d7557e24c33886c9f/68747470733a2f2f706f7365722e707567782e6f72672f6d736861766c69756b2f6d736861766c69756b2d7369676e616c2d6576656e74732d62756e646c652f762f737461626c65)](https://packagist.org/packages/mshavliuk/mshavliuk-signal-events-bundle)[![Total Downloads](https://camo.githubusercontent.com/9928ef6988e1bb94db8bc5167c6f8f70b4b9a2797949501233595b564585af33/68747470733a2f2f706f7365722e707567782e6f72672f6d736861766c69756b2f6d736861766c69756b2d7369676e616c2d6576656e74732d62756e646c652f646f776e6c6f616473)](https://packagist.org/packages/mshavliuk/mshavliuk-signal-events-bundle)[![Latest Unstable Version](https://camo.githubusercontent.com/a8057b3c4ceee825178c5450baa58189da5cb0cd64d47b45cbab41646e85a5d8/68747470733a2f2f706f7365722e707567782e6f72672f6d736861766c69756b2f6d736861766c69756b2d7369676e616c2d6576656e74732d62756e646c652f762f756e737461626c65)](https://packagist.org/packages/mshavliuk/mshavliuk-signal-events-bundle)[![License](https://camo.githubusercontent.com/6a4ca9bbd860929329bc4c2fc00ca2ea83000da209bd6a63d14b2ca7f33c2849/68747470733a2f2f706f7365722e707567782e6f72672f6d736861766c69756b2f6d736861766c69756b2d7369676e616c2d6576656e74732d62756e646c652f6c6963656e7365)](https://packagist.org/packages/mshavliuk/mshavliuk-signal-events-bundle)[![Build Status](https://camo.githubusercontent.com/c43c0ab6a623c7e2f308ec14b4a6d82601a5f0467e562bc81308b926a9994e14/68747470733a2f2f7472617669732d63692e6f72672f6d736861766c69756b2f6d736861766c69756b2d7369676e616c2d6576656e74732d62756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/mshavliuk/mshavliuk-signal-events-bundle)[![codecov](https://camo.githubusercontent.com/9fde93067287081d997c2911197563c150c00dde5e938cfe839fc7e387ab1c26/68747470733a2f2f636f6465636f762e696f2f67682f6d736861766c69756b2f6d736861766c69756b2d7369676e616c2d6576656e74732d62756e646c652f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/mshavliuk/mshavliuk-signal-events-bundle)

About
-----

[](#about)

This bundle provides service, that emits events for every handled UNIX signals into your Symfony application. It relies on PCNTL php-extension, which you can check by running

```
$ php --ri pcntl
```

Expected output:

```
pcntl
pcntl support => enabled

```

Installation
------------

[](#installation)

Add the `mshavliuk/mshavliuk-signal-events-bundle` package to your `require` section in the `composer.json` file.

```
$ composer require mshavliuk/mshavliuk-signal-events-bundle
```

Usage
-----

[](#usage)

### Automatic startup

[](#automatic-startup)

By default it will handle every possible signals and startup after `console.command` event which is basically in every `php bin/console` run.

Configure the bundle in your `config.yml`:

```
mshavliuk_signal_events:
    startup_events:
        - console.command       # to handle signals while console commands (default)
        - kernel.request        # to handle signals while requests processing
    handle_signals:
        - SIGINT                # ctrl+c
        - SIGTSTP               # ctrl+z
```

### Manual

[](#manual)

To prevent automatic startup you can specify empty arrays for `startup_events` config:

```
mshavliuk_signal_events:
    startup_events: []      # prevent startup
```

In that case you can manually inject `Mshavliuk\MshavliukSignalEventsBundle\Service\SignalHandlerService` and configure signals to handle:

```
public function __construct(SignalHandlerService $service)
{
    $service->addObservableSignals(['SIGINT', 'SIGHUP']);
}
```

### Handling signal events

[](#handling-signal-events)

You can register any callback function to handle specific event via `EventDispatcherInterface::addListener` function. See the following example:

```
$eventDispatcher->addListener(SignalEvent::NAME, function($event, $eventName) use ($output) {
    if($event->getSignal() === SIGINT) {
        $output->writeln('Ctrl+C signal handled');
    }
});
```

Also you can create special listener class and bind its public method for process any signals:

services.yaml:

```
App\EventListener\SignalListener:
    tags:
        - { name: kernel.event_listener, event: signal.handled, method: onSignal }
```

SignalListener.php:

```
class SignalListener
{
    protected $logger;

    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }

    public function onSignal($event)
    {
        $this->logger->info('handle signal event', ['event' => $event]);
    }
}
```

For more information read the official Symfony [documentation](https://symfony.com/doc/current/event_dispatcher.html).

License
-------

[](#license)

See [LICENSE](LICENSE).

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2535d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5bc9e94988b2598e9b17dd633aa409b57c335361f32916fffab79f3f1a51834f?d=identicon)[mshavliuk](/maintainers/mshavliuk)

---

Top Contributors

[![mshavliuk](https://avatars.githubusercontent.com/u/6589665?v=4)](https://github.com/mshavliuk "mshavliuk (8 commits)")

---

Tags

cliconsolesymfonybundlepcntl

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mshavliuk-mshavliuk-signal-events-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/mshavliuk-mshavliuk-signal-events-bundle/health.svg)](https://phpackages.com/packages/mshavliuk-mshavliuk-signal-events-bundle)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[crunzphp/crunz

Schedule your tasks right from the code.

2292.0M6](/packages/crunzphp-crunz)[drupal/console-core

Drupal Console Core

13514.7M12](/packages/drupal-console-core)[acquia/orca

A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build

32902.4k](/packages/acquia-orca)[cmsig/seal-symfony-bundle

An integration of CMS-IG SEAL search abstraction into Symfony Framework.

15195.8k5](/packages/cmsig-seal-symfony-bundle)[proophsoftware/prooph-bundle

Symfony bundle for prooph components to get started out of the box with message bus, CQRS, event sourcing and snapshots

164.3k](/packages/proophsoftware-prooph-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
