Daemon

Per fare in modo che la coda giri come servizio, è opportuno scrivere un apposito daemon e registrarlo nel sistema come servizio. Per creare un nuovo daemon, basta semplicemente creare una nuova classe in /daemon/daemons/ con la seguente nomenclatura:

<nome-daemon>Daemon.class.php.

I metodi da implementare sono:

executeStart: Metodo che viene invocato ad ogni iterazione.

executeStop: Metodo che viene invocato allo stop del servizio.

getSleepTime: Restituisce il numero di secondi di inattività tra un'iterazione e l'altra.

Configurazione

Oltre alla creazione del demone sotto forma di classe PHP risulta necessario inserire il demone appena creato nel file di configurazione /daemon/config/autostart.ini Ogni sezione del file di configurazione rappresenta un demone. Per ogni demone sono presenti due chiavi:

autostart può essere impostata a true o false e indica se il demone va lanciato automaticamente dallo script /daemon/itaDaemonAutostart.php

parameters sono i parametri addizionali da inviare al demone, possono essere definiti più parametri usando il carattere di pipe | come divisore.

Servizio

Centos7: creazione di un nuovo script (/etc/systemd/system/testphp.service):

After=network.target
[Service]
Type=forking
User=root
ExecStart=/bin/bash /vagrant/system/start-daemon.sh par1 par2
ExecStop=/bin/bash /vagrant/system/stop-daemon.sh
[Install]
WantedBy=multi-user.target

start-daemon.sh:

php /vagrant/itaEngine/daemon/itaDaemonExecutor.php dummy start $1 $2 &

stop-daemon.sh:

php /vagrant/itaEngine/daemon/itaDaemonExecutor.php dummy stop