Setting up Auto-restarting php daemon

I have a php script with an environment variable from Fuelphp that I run with a command like FUEL_ENV=production php oil run task however, I'd like it to run as a daemon that will automatically restart itself when it exits. The main reason it exists is due to memory usage, the task processes large amounts of data and slowly leaks (as PHP tends to)

I tried this but it puts the script in an endless loop that I can't kill (and so haven't even tried nohupping it as I don't think I can kill it)

while true; do FUEL_ENV=production php oil run task && break; done &

So what's the best way to set up a PHP script that will restart itself when it exists.


Solution 1:

Thanks to @Michael Hampton. Figured out how to setup a systemd for php with an environment variable and this worked well.

[Unit]
Description=<description>
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=paullb
Environment=FUEL_ENV2=development
ExecStart=/usr/bin/php /var/www/<dir>/oil r <name>

[Install]
WantedBy=multi-user.target