Open spawnia opened 3 years ago
Had this issue with our own code with graceful shut downs. I.e. the watcher does not wait for the app to shutdown. Fixed & re-released this with this commit.
Not sure about the maintenance status of this project so will keep it maintained in our fork until there is clearance.
@fritz-gerneth I would like to try your solution. It appears you changed the package name in your fork, but it is not available from packagist. How can I install it?
Also, perhaps you can try and post a PR to this project. There does not seem to be much activity, but that might just be because the project is somewhat finished - it is a simple utility after all, and apart from major new PHP versions and bug fixes, it should not need much maintenance.
It is now posted to packagist. Either install from packagist or use the phar file (which we use over here). As there were more fixes than this single one it's not a single PR. Will split up & cherry pick if there is activity from the maintainer
Thank you @fritz-gerneth, installing with composer require --dev funct-gmbh/php-watcher
worked.
Restarting now works, but it appears a bit imperfect - there is a message telling me the app crashed when I simply change whitespace in a file to trigger a reload:
root@59d2aec7e8b2:/var/www# vendor/bin/php-watcher artisan --arguments=octane:start --watch=app
[PHP-Watcher] 1.0.0
[PHP-Watcher] watching: app
[PHP-Watcher] starting `php artisan octane:start`
â Ź
INFO Server running…
Local: http://127.0.0.1:8000
Press Ctrl+C to stop the server
[PHP-Watcher] app crashed - waiting for file changes before starting...
[PHP-Watcher] restarting due to changes...
[PHP-Watcher] starting `php artisan octane:start`
⡇
INFO Server running…
Local: http://127.0.0.1:8000
Press Ctrl+C to stop the server
Weird stuff.. It doesn't do that for me but restarts with the proper message... That'd mean artisan would quit with a non-zero code. Could you check the exit code (echo $?
) when starting the process manually & terminate it kill -INT $PID
?
( I also pushed v1.0.1 to include the code on app crash )
The process exits with code 137
after terminating it with kill -INT
. The output of the updated version confirms that:
[PHP-Watcher] app crashed (137) - waiting for file changes before starting...
What exact command are you using to watch octane?
Not using Laravel but for ReactPHP directly (i.e. php-watcher src/index.php
) but in general this should work with every script/language).
Not knowing the intrinsics I do not know why artisan would return with a 137 code (which it apparently does even without the php-watcher infront). Might be a topic for the laravel community :)
It appears that Octane generally does not fail gracefully on SIGTERM
, see https://github.com/laravel/octane/issues/469
Hi, thanks for this project đź‘‹
I am trying to use this project as a lightweight alternative to
chokidar
for restarting Laravel Octane: https://laravel.com/docs/8.x/octane#watching-for-file-changesWhen updating a watched file, it appears the process is restarted twice:
If you need to reproduce this locally, a plain Laravel install with Octane should do: