1

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.

1
  • 1
    Why don't you just write a systemd unit for it? Nov 6, 2020 at 22:52

1 Answer 1

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.