PHP wrapper for systemctl
$ composer require icanhazstring/systemctl-phpSee Units
If you like to add support for more units, feel free to grab an issue and contribute.
- start
- stop
- enable
- disable
- reload
- restart
- isEnabled
- isActive
If you like to add support for more commands, feel free to contribute.
SystemCtl::setBinary('/bin/systemctl');To change command tmeout simply call the static method setTimeout.
SystemCtl::setTimeout(10);The default timeout is set to
3seconds
If you need sudo, you should execute the bin executable with sudo. The incode support was dropped due to security reason.
Simply is that. First we instantiate a SystemCtl instance an load a unit from a specific type. Here we use a Service. You will always get back true if the command succeeded. Otherwise the method will throw a CommandFailedException.
$systemCtl = new SystemCtl();
// start/stop/enable/disable/reload/restart
$systemCtl->getService('nginx')->start();
$systemCtl->getService('nginx')->stop();Clone the repo and install using composer
$ composer installMake your changes and make sure you run test, codesniffer and phpstan.
$ composer test
> vendor/bin/phpunit
PHPUnit 9.5.3 by Sebastian Bergmann and contributors.
............................................................... 63 / 128 ( 49%)
............................................................... 126 / 128 ( 98%)
.. 128 / 128 (100%)
Time: 00:00.033, Memory: 10.00 MB
OK (128 tests, 192 assertions)
$ composer cs
> vendor/bin/phpcs --standard=PSR2 src/ && vendor/bin/phpcs --standard=PSR2 tests/
$
$ composer analyse
> vendor/bin/phpstan analyse --no-progress
Note: Using configuration file /data/systemctl-php/phpstan.neon.
[OK] No errors
$This library is heavily influenced by @mjanser php-systemctl.