Я запускал скрипт в своем браузере, который вставлял около 100000 записей в базу данных. По какой-то причине я удалил файл, в котором я написал скрипт, но для меня было мало удивительно, что скрипты продолжают вставлять записи в базу данных, даже если сценарий не существует. Почему это?Почему скрипты продолжают работать, даже если файл не существует?
ответ
Когда сделан запрос на веб-сервере:
Файл PHP загружается в память, он компилируется и работает.
Поскольку файл находится в памяти, любые изменения в файле на диске не применимы к запущенному файлу.
Если это ударяет другой вопрос Вам, как к «Почему, черт возьми, она загружается в память ?? Почему не может она быть выполнена с диска непосредственно?»:
Память здесь - это в основном оперативная память, которая быстрее выполняет чтение/запись, что является необходимостью конкурировать с производительностью процессоров.
HardDisk - это медленная память и, следовательно, доступ к ней, сделает ваши программы очень медленными для выполнения.
Чтобы соответствовать скорости процессоров, приходит потребность в исполняемый файл должен быть загружен из медленной памяти (часто винчестерах) к более быстрой памяти (часто Ram, или кэш процессора иногда).
И поэтому причина и ответ, почему ваш файл на диске не находится в файле синхронизации в памяти.
Также, пожалуйста, будьте уверены, что это будет работать в следующем запросе!
Но если вы все же хотите сделать это немедленно, вы можете рассмотреть возможность остановки/перезагрузки вашего сервера Apache/IIS (независимо от того, какой из них применимо), так как это немедленно уничтожит процесс.
@Umair, как только вы запустите сценарий, затем попросите перейти на сервер и он будет работать на сервере до завершения процесса. поэтому неважно, доступен ли файл или нет, потому что это старый запрос, который находится в процессе, поэтому это происходит.
Процесс выполняет в памяти не с диска.
Если вы хотите остановить запущенный скрипт, вам необходимо перезагрузить веб-сервер или убить процесс php. В зависимости от того, запущен ли он из командной строки или нет.
- 1. Почему функции огурца продолжают работать, даже если они терпят неудачу?
- 2. Почему куки продолжают работать
- 3. Почему String (contentsOfFile) не работает, даже если файл существует?
- 4. Почему Makefile обнаруживает файл, даже если он не существует?
- 5. Почему мои скрипты python не обновляются, даже если они сохранены?
- 6. Ошибка IIS 404, даже если файл существует?
- 7. jython classnotfoundexception, даже если файл класса существует
- 8. Почему потоки продолжают работать после выхода приложения?
- 9. Почему атаки Pass-the-Hash продолжают работать?
- 10. Как заставить определенные URL не работать (даже если страница существует)
- 11. почему stat() возвращает -1, даже если файл существует [RHEL 7.2]
- 12. Выходной файл сохраняется, даже если входной файл не существует? **** EDIT ****
- 13. файл не найден в CF11, даже если файл существует
- 14. результаты Process.Start в файл не найден, даже если файл существует
- 15. Композитор не смог найти файл composer.json, даже если файл существует
- 16. htaccess redirect не будет работать, если файл не существует
- 17. Webbrowser навигация отменена, даже если файл существует
- 18. Нитки Пикассо продолжают работать
- 19. Invoke-Expression -command не найти файл, даже если она существует
- 20. symfony существует возврат false, даже если файл существует?
- 21. ExecutorService.awaitTermination (timeout, unit) продолжают работать даже после таймаута
- 22. Как сказать «если var:», даже если «var» вообще не существует?
- 23. PHP: работать, даже если не IsSet
- 24. Сервер считает, что запросы продолжают поступать, даже если они не
- 25. Почему этот файл не существует?
- 26. Имя не найдено Даже если существует файл JSON Обновлено
- 27. PHP - file_exists не работает, даже если файл существует в каталоге
- 28. Wget создает выходной файл, даже если страница не существует
- 29. Java File.Exists() возвращает истину, даже если файл не существует
- 30. Pass путь полный файл PHP, даже если каталог не существует
Его кешируется в памяти. – DejanLekic