PHP wrapper for systemctl
$ composer require icanhazstring/systemctl-php
See 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
3
seconds
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 install
Make 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.