Skip to content

PHP extension allowing native interaction with systemd and its journal

License

Notifications You must be signed in to change notification settings

hemio-ev/php-systemd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

10 Commits

Repository files navigation

php-systemd

PHP extension allowing native interaction with systemd and journald

Installation

Prerequisites

.deb based

sudo apt install php5-dev libsystemd-dev 

.rpm based

sudo dnf install php-devel systemd-devel 

Build

phpize ./configure --with-systemd make 

Setup

sudo make install 

Fedora

echo "extension=systemd.so" | sudo tee /etc/php.d/systemd.ini 

Debian (PHP 5)

echo "extension=systemd.so" | sudo tee /etc/php5/mods-available/systemd.ini sudo php5enmod systemd 

Basic Test

echo "<?php echo sd_journal_send('MESSAGE=hello world');" | php 

Usage

Quick example:

<?php sd_journal_send('MESSAGE=Hello world.'); // message with priority "3" (warning) and identifier (also called *TAG*) set to "appname" sd_journal_send('MESSAGE=Error message','PRIORITY=3', 'SYSLOG_IDENTIFIER=appname');" 

Notes:

  • Each argument must be in the form of a KEY=value pair, environmental variable style.
  • Unlike the native C version of journald's sd_journal_send(), printf-style substitution is not supported. Perform any substitution using PHP's sprintf() or similar capabilities first.
  • The base message is usually sent in the form MESSAGE=hello. The MESSAGE field is, however, not required.
  • Invalid arguments result in nothing recorded in the journal.

Viewing Output

Quick way to view output with all fields as it comes in:

sudo journalctl -f --output=json 

About

PHP extension allowing native interaction with systemd and its journal

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C56.5%
  • M443.5%