Daemon PHP su Ubuntu

PHP è un linguaggio utilizzato principalmente dagli sviluppatori web, ma a volte si ha necessità di eseguire dei processi in background, come l’invio di newsletter, l’analisi delle statistiche o semplicemente la manutenzione del database. Il modo più comune è abusare di crond per quasi tutto.

Alcuni vantaggi dell’esecuzione di uno script PHP come daemon rispetto a un’attività cron sono i seguenti:

  • Puoi facilmente avviare e interrompere l’esecuzione di questi script senza dover modificare il crontab ogni volta.
  • Puoi eseguire le attività più frequentemente di una volta al minuto.
cd /etc/systemd/system
nano daemon-name.service
[Unit]
Description=Run PHP Daemon
Wants=network-online.target multi-user.target
After=network-online.target multi-user.target

[Service]
PIDFile=/var/run/daemon-name.pid
ExecStart=/usr/bin/php -q /home/user/path/to/script/daemon-name.php > /dev/null 2>&1
Type=simple
KillMode=process
Restart=on-failure
RestartSec=1s

[Install]
WantedBy=multi-user.target
<?php
if (PHP_SAPI != "cli")
{
    die("Please run this script from the command line");
}

define('SLEEP', 1);

while(true)
{
    // do something
    sleep(SLEEP);
}
systemctl enable daemon-name
systemctl start daemon-name
systemctl stop daemon-name
systemctl disable daemon-name
systemctl status daemon-name
rm /etc/systemd/system/daemon-name.service

Related Posts

Leave a comment

Hey, so you decided to leave a comment! That's great. Just fill in the required fields and hit submit. Note that your comment will need to be reviewed before its published.