В Linux, что произошло бы с под управлением программой, когда это - исполняемый файл, был изменен или удален?

Скажем, /usr/local/bin/ruby работает в фоновом режиме, и затем мы перезаписываем ruby с другой версией, или даже удаляют ruby.

Что произойдет с теми рабочие рубиновые процессы?

11
задан 11.02.2015, 21:34

4 ответа

Это зависит от точно, как исполняемый файл обновляется. Если тот же файл будет открыт, и части его изменяются, то плохие вещи произойдут. Если это удалено, файл удален из структуры каталогов файловой системы, но не на самом деле несвязанный (т.е. удален) до последнего процесса, который имеет его открытый, выполнился, это выходит. Таким образом, если исполняемый файл удален и новый с тем же именем, написанным в его месте, старый должен продолжить работать хорошо.

9
ответ дан 07.12.2019, 12:20

Они продолжат идти. Возможно, откажите ужасно, если они пытаются доступ сами и получают что-то крайне неправильно. Я не сделал бы этого, если я не имел к :)

4
ответ дан 07.12.2019, 12:20

Что произойдет с теми рабочие рубиновые процессы?

  1. сделайте копию/usr/local/bin/ruby
  2. [если это не работает, выполните/usr/local/bin/ruby]
  3. попытка: комната/usr/local/bin/ruby
  4. и лично убедитесь :)
1
ответ дан 07.12.2019, 12:20

Именно мое понимание, что ядро Linux имеет компонент, названный загрузчиком, открывает сам исполняемый файл, содержа изображение, во время процесса загрузки/соединения, и когда-то сделанный с соединением с библиотеками, и т.д., загрузчик закрывает файл. Таким образом этот процесс происходит и завершен к тому времени, когда ядро на самом деле запускает процесс.

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

Я сказал бы, и это был мой опыт, что при удалении исполняемого файла на диске исполняемый файл, загруженный в памяти, не затронут. Аналогично, если исполняемый файл заменяется более новые версии, в настоящее время выполняющиеся "автоматически" не обновляются, если они не останавливаются и повторно запускаются.

У меня были проблемы с RAID-контроллером, который вызвал весь диск, что корневой каталог и другие разделы были смонтированы на внезапно действовать, как будто он был разъединен. Не мог загрузить новые программы, но в памяти хорошо работали, пока им не были нужны файлы от диска.

1
ответ дан 07.12.2019, 12:20

Теги

Похожие вопросы