Почему этот исполняемый файл все еще выполняется после того, как я удалил его?

Я удалил исполняемый файл, так почему он все еще работает?

root@raspberrypi:/test# ls -la total 11096 drwxrwxrwx 2 pi pi 4096 Mar 12 18:26 . drwxrwxr-x 11 pi pi 4096 Feb 28 13:50 .. -rwxrw-rw- 1 pi pi 12149 Feb 28 13:00 .cproject -rwxrw-rw- 1 pi pi 3183 Mar 12 18:26 main.cpp -rwxrw-rw- 1 pi pi 2169 Feb 28 14:28 main.cpp~ -rwxrw-rw- 1 pi pi 1862 Feb 28 13:20 original.cpp -rwxrw-rw- 1 pi pi 984 Feb 28 13:09 .project -rwxrw-rw- 1 pi pi 11323309 Jan 28 12:54 teatro.png root@raspberrypi:/test# ./testedfb running... 

–Обновить:

Некоторое время спустя (после того, как я попытался скомпилировать снова, но есть ошибка, и исполняемый файл не был создан), поведение изменилось на:

 root@raspberrypi:/test# ./testedfb bash: ./testedfb: No such file or directory 

Но мне все еще любопытно; почему он бежал?

–update (2):

Просто случилось снова, и я сделал тест:

 root@raspberrypi:/test# killall -9 testedfb testedfb: no process found root@raspberrypi:/test# ./testedfb running... 

И он все еще работает …

Я нахожусь в баре малины.

–update (3):

Это просто произошло сейчас, файл был там, но он не был найден:

 root@raspberrypi:/test# ./testedfb bash: ./testedfb: No such file or directory root@raspberrypi:/test# ls main.cpp main.cpp~ original.cpp teatro.png testedfb 

(и при следующей попытке он действительно запустился)

Может быть, это NFS (эта папка установлена), которая слишком медленно обновляется? (спасибо @derobert за вопрос о файловой системе) – это ответ на этот второй случай, а не первый, поскольку я не могу видеть исполняемый файл, но все же я могу его выполнить … (и похоже, что процесс тоже не работает)

  • NFS: делиться со всеми клиентами, кроме одного
  • Могу ли я отправлять журналы аудита на другой компьютер?
  • Как разрешить устаревший дескриптор nfs?
  • Как обеспечить, чтобы только один экземпляр моего сценария ksh выполнялся на Solaris с помощью NFS?
  • Почему у меня есть только NST4 для чтения?
  • Добавить параметры для монтирования NFS
  • Как подключиться к серверу RPi NFS с помощью версии 4?
  • Red Hat с rpc.statd не работает и не может запускать nfslock
  • 3 Solutions collect form web for “Почему этот исполняемый файл все еще выполняется после того, как я удалил его?”

    Чтобы запустить программу, она открывается ядром (или его интерпретатором). Пока он запущен, файл остается открытым.

    Удаление файла, открытого в Unix, удаляет его имя с диска, сам файл удаляется только после его закрытия.

    Добавьте два выше, и вы увидите, что запущенная программа продолжает использовать свой программный файл, и этот будет удален только после выхода программы.

    Программа работает в памяти, удаление ее с диска обычно не влияет на остановку программы.

    Вам нужно явно убить программу с помощью killall testedfb или если она не реагирует на этот killall -9 testedfb .

    Похоже, что это проблема синхронизации папки NFS.

    Если я создам исполняемый файл на сервере NFS, он будет отображаться / выполняться локально только после команды ls .

    Если я удалю исполняемый файл на сервере NFS, он все равно выполняется локально, событие после команды ls показывает, что файла нет. Но если я удалю исполняемый файл локально (в той же папке NFS), он не будет найден для выполнения снова.

    (очистить: «локально» я имею в виду на клиентском терминале малины, а не на сервере NFS-сервера)

    Interesting Posts

    Как приложения GUI будут работать, если нет системного трея?

    Есть ли надежный общесистемный эквалайзер с регулируемыми полосами частот для * buntu?

    Русские символы вместо французского или немецкого, с шрифтом Helvetica

    Может ли «grub-emu» внести какие-либо изменения в мою систему?

    Синтаксическая ошибка, неожиданный идентификатор

    Что делает «set -» в этой точке входа в Dockerfile?

    Могу ли я пропустить проверку принудительной файловой системы?

    Использование подоболочки для передачи параметров с пробелами

    Не удается получить доступ к жестким дискам с установочного компакт-диска FreeBSD.

    Запись на stdin процесса

    Настройка такой же темы gtk / openbox как в 64-битной собственной, так и в 32-битной среде chroot

    Написание сценария установки для CentOS

    Как стандартный ввод одной программы может передаваться как аргумент другому?

    Командная строка Linux: путаница glob

    Можно ли сортировать сортировку?

    Linux и Unix - лучшая ОС в мире.