Van amúgy az ilyen és hasonló esetekre egy szakállas ősrégi trükk. A PHP scripttel csak létrehozol egy üres fájlt. Ott a saját kis szemétdombján. Beraksz cronba egy watchert, ami akkor reagál ha megjelenik ez a fájl. A watcher sima bash, és a root cron futtatja root joggal. A php sima php, az apache2 futtatja a saját jogaival. Ennek az a szépsége hogy nem kell vesződj a jogokkal. Senkit semmilyen csoportba nem kell berakni, nincs exec a phpben, egyszóval megkönnyíti ezt a dolgot. A watcher minden percben fut, azaz ha 00:00:01-kor keletkezik a fájl, akkor 59s múlva lesz végrehajtva a restart. Szerintem elfogadható kompromisszum 1-2 perc delay.
És itt ezt lehet még tovább szépíteni, megakadályozni hogy egyszerre többször legyen a restart meghívva. Egyszóval szépen részleteiben ki lehet dolgozni atom biztosra a php oldalt is és a bash oldalt is külön külön.